PHP は GD ライブラリを使用して画像を描画し、検証コード画像を生成します。
まず、php.ini の設定で GD 拡張機能がオンになっていることを確認します。テストは次のとおりです。
print_r(gd_info());
Array( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => [XBM Support] => 1 [JIS-mapped Japanese Font Support] => )
GD 描画の一般的な手順は次のとおりです。
1. キャンバス リソースを作成します
2. カラーブラシを作成します
3. 画像を描画します
4. 🎜>
5. メモリキャンバスリソースを破棄します
テストコードは次のとおりです:
<?phpheader("Content-type: image/jpeg");$width = 400; //宽,高$height = 400; $image = imagecreate($width, $height); //第一步:创建空白图像$white = imagecolorallocate($image, 0, 0, 0); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色,即用 imagecreate() 建立的图像。 $green = imagecolorallocate($image, 0, 255, 0); //第二步:为图像分配颜色imageline($image, 0, 20, 400, 20, $green); //第三步:画线imagerectangle($image,100,40,300,100,$green); //画矩形imagearc($image, 200, 150, 90, 90, 0, 360, $green); //画圆imagestring($image, 14, 100, 240, "PHP is NiuBi HongHong!", $green); //写字符串$str="abcdefghjklmnpqrstuvwxyz23456789";$randstr = substr(str_shuffle($str), 0,4);imagestring($image, 14, 100, 260, $randstr, $green); //验证码imagettftext($image, 14, 0, 100, 300, $green, './MSJHBD.TTF', "中文vsEnglish"); //中文验证// imagejpeg($image,'./test.jpg'); //在当前路径下保存图片为test.jpgimagejpeg($image); //第四步:不加文件名,直接输出到网页 imagedestroy($image); //第五步:销毁,回收资源?>
注: GD ライブラリは強力で、さまざまなレポート (棒グラフ、円グラフ、ステータス画像など)、サムネイル、透かし入りの画像、株価チャートを描画できます
サムネイル関数の例:
<?phpheader("Content-type: image/png");$width = 300; //原图宽,高$height = 210; $thumb_width = (int)$width/2;$thumb_height = (int)$height/2;$dst = imagecreate($thumb_width,$thumb_height); //创建缩略图画布$gray = imagecolorallocate($dst, 100, 100, 100);$src = imagecreatefrompng('./me.png'); //读取原图//把原图copy到缩略图画布上imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height); imagepng($dst,'./me_thumb.png');imagedestroy($dst);imagedestroy($src);?>