學習要點:
1.建立影象
2.簡單小案例
在PHP5 中,動態圖象的處理要比以前容易得多。PHP5 在php.ini 檔案中包含了GD 擴
展包,只需去掉GD 擴充套件包的相應註釋就可以正常使用了。PHP5 包含的GD 庫正是升級的
GD2 庫,其中包含支援真彩影象處理的一些有用的JPG 功能。
一般生成的圖形,通過PHP 的文件格式存放,但可以通過HTML 的圖片插入方式SRC
來直接獲取動態圖形。比如,驗證碼、水印、微縮圖等。
一.建立影象
建立影象的一般流程:
1).設定標頭,告訴瀏覽器你要生成的MIME 型別。
2).建立一個影象區域,以後的操作都將基於此影象區域。
3).在空白影象區域繪製填充背景。
4).在背景上繪製圖形輪廓輸入文字。
5).輸出最終圖形。
6).清除所有資源。
7).其他頁面呼叫影象。
設定標頭指定MIME 輸出型別
<?php header('Content-Type: image/png'); ?>
建立一個空白的影象區域
<?php $im = imagecreatetruecolor(200,200); ?>
在空白影象區域繪製填充背景
<?php $blue = imagecolorallocate($im,0,102,255); imagefill($im,0,0,$blue); ?>
在背景上繪製圖形輪廓輸入文字
<?php $white = imagecolorallocate($im,255,255,255); imageline($im,0,0,200,200,$white); imageline($im,200,0,0,200,$white); imagestring($im, 5, 80, 20, "Mr.Lee", $white); ?>
輸出最終圖形
<?php imagepng($im); ?>
清除所有資源
<?php imagedestroy($im); ?>
其他頁面呼叫建立的圖形
<img src="Demo4.php" alt="PHP 建立的圖片" />
二.簡單小案例
簡單驗證碼
<?php header('Content-type: image/png'); for($Tmpa=0;$Tmpa<4;$Tmpa++){ $nmsg.=dechex(rand(0,15)); } $im = imagecreatetruecolor(75,25); $blue = imagecolorallocate($im,0,102,255); $white = imagecolorallocate($im,255,255,255); imagefill($im,0,0,$blue); imagestring($im,5,20,4,$nmsg,$white); imagepng($im); imagedestroy($im); ?>
載入已有的影象
<?php header('Content-Type:image/png'); define('__DIR__',dirname(__FILE__).'\\'); $im = imagecreatefrompng(__DIR__.'222.png'); $white = imagecolorallocate($im,255,255,255); imagestring($im,3,5,5,'http://www.yc60.com',$white); imagepng($im); imagedestroy($im); ?>
載入已有的系統字型
<?php $text = iconv("gbk","utf-8","李炎恢"); $font = 'C:\WINDOWS\Fonts\SIMHEI.TTF'; imagettftext($im,20,0,30,30,$white,$font,$text); ?>
影象微縮
<?php header('Content-type: image/png'); define('__DIR__',dirname(__FILE__).'\\'); list($width, $height) = getimagesize(__DIR__.'222.png'); $new_width = $width * 0.7; $new_height = $height * 0.7; $im2 = imagecreatetruecolor($new_width, $new_height); $im = imagecreatefrompng(__DIR__.'222.png'); imagecopyresampled($im2, $im, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagepng($im2); imagedestroy($im); Imagedestroy($im2); ?>
注:文章出自李炎恢PHP視訊教程,本文僅限交流使用,不得用於商業用途,否則後果自負。