之前有一個我寫的帖子是可以拿到遠(yuǎn)端地址的圖片保存本地的
前段時間搞的很火的朋友圈標(biāo)籤,可以使用下面僅僅三個自定義函數(shù)即可合成,具體參數(shù)石頭已經(jīng)給大家寫出,有需要改進(jìn)的地方請直接留言!
/** * a.合成圖片信息 復(fù)制一張圖片的矩形區(qū)域到另外一張圖片的矩形區(qū)域 * @param [type] $bg_image [目標(biāo)圖] * @param [type] $sub_image [被添加圖] * @param [type] $add_x [目標(biāo)圖x坐標(biāo)位置] * @param [type] $add_y [目標(biāo)圖y坐標(biāo)位置] * @param [type] $add_w [目標(biāo)圖寬度區(qū)域] * @param [type] $add_h [目標(biāo)圖高度區(qū)域] * @param [type] $out_image [輸出圖路徑] * @return [type] [description] */ function image_copy_image($bg_image,$sub_image,$add_x,$add_y,$add_w,$add_h,$out_image){ if($sub_image){ $bg_image_c = imagecreatefromstring(file_get_contents($bg_image)); $sub_image_c = imagecreatefromstring(file_get_contents($sub_image)); imagecopyresampled($bg_image_c, $sub_image_c, $add_x, $add_y, 0, 0, $add_w, $add_h, imagesx($sub_image_c), imagesy($sub_image_c)); //保存到out_image imagejpeg($bg_image_c, $out_image, 80); imagedestroy($sub_image_c); imagedestroy($bg_image_c); } } /** * b.生成文字圖片并插入廣告圖中 * @param [type] $filename [背景路徑] * @param [type] $text [文字內(nèi)容] * @param [type] $font [文字大小] * @param [type] $size [文字畫布的寬] * @param [type] $width_f [文字顏色] * @param [type] $red [紅] * @param [type] $grn [綠] * @param [type] $blu [藍(lán)] */ function create_text($filename,$text,$font,$size,$width_f,$red,$grn,$blu){ $rot = 0; // 旋轉(zhuǎn)角度 $width = 0; //寬度 $height = 0; //高度 $offset_x = 0; //x偏移 $offset_y = 0; //y偏移 $bounds = array(); $text = autowrap($size, 0, $font, $text,$width_f); // 自動換行處理 /** [字體大小] [角度] [字體名稱] [字符串] [預(yù)設(shè)寬度] */ // 確定邊框高度. $bounds = ImageTTFBBox($size, $rot, $font, "W"); if ($rot < 0) { $font_height = abs($bounds[7]-$bounds[1]); } else if ($rot > 0) { $font_height = abs($bounds[1]-$bounds[7]); } else { $font_height = abs($bounds[7]-$bounds[1]); } // 確定邊框高度. $bounds = ImageTTFBBox($size, $rot, $font, $text); if ($rot < 0) { $width = abs($bounds[4]-$bounds[0]); $height = abs($bounds[3]-$bounds[7]); $offset_y = $font_height; $offset_x = 0; } else if ($rot > 0) { $width = abs($bounds[2]-$bounds[6]); $height = abs($bounds[1]-$bounds[5]); $offset_y = abs($bounds[7]-$bounds[5])+$font_height; $offset_x = abs($bounds[0]-$bounds[6]); } else { $width = abs($bounds[4]-$bounds[6]); $height = abs($bounds[7]-$bounds[1]); $offset_y = $font_height; $offset_x = 0; } $bg = imagecreatetruecolor($width + 20,$height + 20); // 創(chuàng)建畫布 $color=imagecolorallocatealpha($bg , 0 , 0 , 0 ,127);//拾取一個完全透明的顏色 imagealphablending($bg ,false);//關(guān)閉混合模式,以便透明顏色能覆蓋原畫布 imagefill($bg , 0 , 0, $color);//填充 imagesavealpha($bg ,true);//設(shè)置保存PNG時保留透明通道信息 $textImg = imagecolorallocate($bg, $red, $grn, $blu); // 創(chuàng)建白色 ImageTTFText($bg, $size, 0, 10, $size + 10, $textImg, $font, $text); imagepng($bg,$filename); } /** * 文字自動換行 * @param [type] $fontsize [字體大小] * @param [type] $angle [角度] * @param [type] $fontface [字體名稱] * @param [type] $string [字符串] * @param [type] $width [預(yù)設(shè)寬度] */ function autowrap($fontsize, $angle, $fontface, $string, $width) { $content = ""; // 將字符串拆分成一個個單字 保存到數(shù)組 letter 中 preg_match_all("/./u", $string, $arr); $letter = $arr[0]; foreach ($letter as $l) { $teststr = $content." ".$l; $testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr); // 判斷拼接后的字符串是否超過預(yù)設(shè)的寬度 if (($testbox[2] > $width) && ($content !== "")) { $content .= PHP_EOL; } $content .= $l; } return $content; }

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

《Go語言程式設(shè)計實例:Web開發(fā)中的程式碼範(fàn)例》隨著網(wǎng)路的快速發(fā)展,Web開發(fā)已成為各行業(yè)中不可或缺的一部分。作為一門功能強大且效能優(yōu)越的程式語言,Go語言在Web開發(fā)中越來越受到開發(fā)者們的青睞。本文將透過具體的程式碼範(fàn)例,介紹如何利用Go語言進(jìn)行Web開發(fā),讓讀者更能理解並運用Go語言來建立自己的Web應(yīng)用。 1.簡單的HTTP伺服器首先,讓我們從一個

華為雲(yún)端邊緣運算對接指南:Java程式碼範(fàn)例快速實現(xiàn)介面隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和邊緣運算的興起,越來越多的企業(yè)開始關(guān)注邊緣運算的應(yīng)用。華為雲(yún)端提供了邊緣運算服務(wù),為企業(yè)提供了高可靠的運算資源和便利的開發(fā)環(huán)境,使得邊緣運算應(yīng)用更容易實現(xiàn)。本文將介紹如何透過Java程式碼快速實現(xiàn)華為雲(yún)端邊緣運算的介面。首先,我們需要準(zhǔn)備好開發(fā)環(huán)境。確保你已經(jīng)安裝了Java開發(fā)工具包(

了解Python程式設(shè)計的入門程式碼範(fàn)例Python是一種簡單易學(xué),功能強大的程式語言。對於初學(xué)者來說,了解Python程式設(shè)計的入門級程式碼範(fàn)例是非常重要的。本文將為您提供一些具體的程式碼範(fàn)例,幫助您快速入門。列印HelloWorldprint("HelloWorld")這是Python中最簡單的程式碼範(fàn)例。 print()函數(shù)用於將指定的內(nèi)容輸出

Java冒泡排序最簡單的程式碼範(fàn)例冒泡排序是一種常見的排序演算法,它的基本想法是透過相鄰元素的比較和交換來將待排序序列逐步調(diào)整為有序序列。以下是一個簡單的Java程式碼範(fàn)例,示範(fàn)如何實作冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

如何使用PHP編寫庫存管理系統(tǒng)中的庫存分倉管理功能碼庫存管理是許多企業(yè)中不可或缺的一部分。對於擁有多個倉庫的企業(yè)來說,庫存分倉管理功能尤其重要。透過合理管理和追蹤庫存,企業(yè)可以實現(xiàn)不同倉庫之間的庫存調(diào)撥,優(yōu)化營運成本,改善協(xié)同效率。本文將介紹如何使用PHP編寫庫存分倉管理功能的程式碼,並為您提供相關(guān)的程式碼範(fàn)例。一、建立資料庫在開始編寫庫存分倉管理功能的程式碼之

PHP變數(shù)儲存程式運行期間的值,對於建立動態(tài)且互動的WEB應(yīng)用程式至關(guān)重要。本文將深入探討php變量,並透過10個真實的範(fàn)例展示它們的實際應(yīng)用。 1.儲存使用者輸入$username=$_POST["username"];$passWord=$_POST["password"];此範(fàn)例從表單提交中提取使用者名稱和密碼,並將其儲存在變數(shù)中以供進(jìn)一步處理。 2.設(shè)定配置值$database_host="localhost";$database_username="username";$database_pa

標(biāo)題:從入門到精通:Go語言中常用資料結(jié)構(gòu)的程式碼實作資料結(jié)構(gòu)在程式設(shè)計中起著至關(guān)重要的作用,它是程式設(shè)計的基礎(chǔ)。在Go語言中,有許多常用的資料結(jié)構(gòu),掌握這些資料結(jié)構(gòu)的實作方式對於成為優(yōu)秀的程式設(shè)計師至關(guān)重要。本文將介紹Go語言中常用的資料結(jié)構(gòu),並給出對應(yīng)的程式碼範(fàn)例,幫助讀者從入門到精通這些資料結(jié)構(gòu)。 1.數(shù)組(Array)數(shù)組是一種基本的資料結(jié)構(gòu),是一組相同類型

Java選擇排序法程式碼編寫指南及範(fàn)例選擇排序是一種簡單直觀的排序演算法,其想法是每次從未排序的元素中選擇最小(或最大)的元素進(jìn)行交換,直到所有元素排序完成。本文將提供選擇排序的程式碼編寫指南,並附上具體的Java範(fàn)例程式碼。演算法原理選擇排序的基本原理是將待排序數(shù)組分為已排序和未排序兩部分,每次從未排序部分選擇最?。ɑ蜃畲螅┑脑兀瑢⑵浞诺揭雅判虿糠值哪┪?。重複上述
