PHP之GD庫案例實戰

2021-10-04 23:08:14 字數 3708 閱讀 8834

【今日推薦】:為什麼一到面試就懵逼!>>>

php可以建立和處理包括gif,png,jpeg,wbmp以及xpm在內的多種格式影象。並且可以直接將影象以資料流的形式輸出到瀏覽器。php使用影象處理功能,必須配置php.ini檔案開啟gd函式庫extension=php_gd2.dll;然後設定extension_dir=」ext目錄所在的位置」;為了保證格式的在正確性,我們統一使用utf8編碼header(『content-tyoe:text/html;charset=utf-8』)。

**分享:

一般使用php繪畫不脫離如下五個步驟:

建立畫布->建立顏色->開始繪畫->輸出或儲存影象->銷毀資源

說到影象處理,那麼必然需要知道驗證碼的實現原理。

//詳見檔案achievecode.php,$image 建立的影象資源,$size 字型大小,$angle 角度,$x 左上角,$y 字型基線的位置,$randcolor 顏色索引,$fontfile 想要使用的 truetype 字型的路徑,$text utf-8 編碼的文字字串

imagettftext($image,$size,$angle,$x,$y,$randcolor,$fontfile,$text);

//新增畫素當干擾元素,詳見檔案achievecode2.php

for($i=1;$i<=50;$i++)

//新增線段干擾元素

for($i=1;$i<=3;$i++)

//繪製圓弧

for($i=1;$i<=2;$i++)

//根據字型大小自動調節

$textwidth=imagefontwidth(28);

$textheight=imagefontheight(28);

//開始繪製

for($i=0;$i

imagettftext($image,$size,$angle,$x,$y,$randcolor,$fontfile,$fontfile,$text);

}關於gd庫,請務必查閱手冊,熟記以下常用函式~

通過函式getimagesize獲得影象資訊,如果是影象就返回圖形資訊,否則返回false

$filename='image/ipad.png';

$fileinfo=getimagesize($filename);

var_dump($fileinfo);

//建立目標畫布資源,詳見thumbnail.php

$dst_image_50=imagecreatetruecolor(50,50);

$dst_image_270=imagecreatetruecolor(270,270);

//通過檔案建立畫布資源

//設定最大的寬和高,詳見equalscale.php

$dst_w=300;

$dst_h=600;

$ratio_orig=$src_w/$src_h;

if($dst_w/$dst_h>$ratio_orig)else

//建立原畫布資源和目標畫布資源

4.2.3優化縮圖操作

//動態獲得檔案型別,詳見equalscale2.php

$mime=image_type_to_mime_type($fileinfo[2]);

$createfun=str_replace('/','createfrom',$mime);

$outfun=str_replace('/',null,$mime);

不同之處:

//建立原畫布資源和目標畫布資源

//詳見watermarking.php,其中imagecolorallocatealpha($image,$red,$green,$blue,$alpha)表示為一幅影象分配顏色,其中alpha重0-127,0表示完全不透明。如果分配失敗則返回false

$filename='images/1.jpeg';

$fileinfo=getimagesize($filename);

$mime=$fileinfo['mime'];

$createfun=str_replace('/','createfrom',$mime);

$outfun=str_replace('/',null,$mime);

$image=$createfun($filename);

$red=imagecolorallocate($image,255,0,0);

$fontfile='fonts/kaiti.ttc';

imagettftext($image,30,0,0,30,$red,$fontfile,'fz杰哥的水印');

header('content-type:',$mime);

$outfun($image);

imagedestroy($image);

//詳見waterpic.php

$logo='image/jd.png';

$filename='images/1.jpeg';

$dst_img=imagecreatefromjpeg($filename);

$src_img=imagecreatefrompng($logo);

imagecopymerge($dst_img,$src_img,0,0,0,0,270,60,100);

header('content-type:image/jpeg');

imagejpeg($dst_img);

imagedestroy($src_img);

imagedestroy($dst_img);

PHP 解析PHP的GD庫

官方文件 php可以建立和操作多種不同格式的影象檔案。php提供了一些內建的影象資訊函式,也可以使用gd函式庫建立和處理已有的函式庫。目前gd2庫支援gif jpeg png和wbmp等格式。此外還支援一些freetype type1等字型庫。首先要在php的配置檔案 php.ini 中開啟php ...

玩轉PHP的GD庫

1 漢字驗證碼 通常的 驗證碼都喜歡使用數字或者字元的組合的形式,但對於某些有價值的 服務中,可能需要更 為嚴格的驗證碼。例如163郵箱惡意註冊驗證 qq號申請驗證都不同程度使用漢字認證。利用php的gd庫,幾行 輕鬆搞定,若果輸出漢字或者特殊字 符,需要您提供ttf字型檔。效果如下 如下 定義輸出...

玩轉PHP的GD庫

php中的gd庫,主要是提供了一組php圖形處理的函式,功能很強大,可以做出很炫的效果。在web2.0應用中,或多或少都會碰到。所以你在應聘web2.0 php工程師的時候,經常會被問到gd庫。其實,php中的gd庫函式比較簡單,你大體清楚它們的功能就可以了,我提供了幾個小例子幫助你記憶和理解。1 ...