【今日推薦】:為什麼一到面試就懵逼!>>>
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 ...