1. GD 拡張機能をオンにする
extension=php_gd2.dll
Apache を再起動する
2. 例:
シナリオ:
500×300 の緑色の画像を作成する
①キャンバスを作成します
リソースタイプのデータ 。操作可能な画像リソース。
新しいキャンバスを作成(New)
ImageCreate(width, height)、パレットを元にキャンバスを作成します。
imageCreateTrueColor(width, height); トゥルーカラーキャンバスを作成します。
画像に基づいてキャンバスを作成 (開く)
imageCreateFromJPEG (画像アドレス);
imageCreateFromGIF (画像アドレス);
色の割り当て:キャンバス上の特定の色 色の場合、最初にその色をキャンバスに割り当てる必要があります。
使用関数:
色の識別 = imageColorAllocate(canvas, R, G, B);
色の表現:
RGB
③キャンバスを塗りつぶす: 塗りつぶし点を同じ色の連続した点で塗りつぶします (置換)
関数を使用します:
imageFill(canvas, 塗りつぶし位置 x, 塗りつぶし位置 Y, 色の識別)
位置は座標を使用して管理されます:
原点: 0, 0、キャンバスの左上隅。
右に行くほど X 軸が増加し、下に行くほど Y 軸が増加します。
右下の座標:width-1, height-1
④キャンバスを出力
加工したパターン情報をキャンバスに出力します。
典型:
1 画像ファイルに出力します。
2 直接出力。
使用関数:
imagePNG(canvas[, file address]):
imageJPEG();
imageGIF();
2番目のパラメータがない場合は、直接出力を意味します。
注: ブラウザに直接出力する場合は、応答データのタイプが PNG 形式の画像であることをブラウザに通知する必要があります。
Content-type コマンドを使用します。
キャンバスは複数回出力でき、さまざまな形式で
⑤ キャンバスリソースを破棄します
imageDestroy()
サンプルコード:<?php //例如:制作500×300的绿色图片 $width=500; $height=300; //创建真彩色的画布 $img=imageCreateTrueColor($width,$height); // var_dump($img); //测试结果: resource(2) of type (gd) $img是一个资源类型 //使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R G B $green=imageColorAllocate($img, 0x0, 0xff, 0x0); //填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成 imageFill($img,0,0,$green); //输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF //imagePNG($img,'./green.png'); //如果没有第二个参数,表示直接输出 //如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type header('Content-Type:image/png;'); imagePNG($img); //注:一个画布可以输出多次,输出为各种格式 //销毁画布资源 imageDestroy($img);
<?php //例如:制作500×300的绿色图片 $width=500; $height=300; //创建真彩色的画布 $img=imageCreateTrueColor($width,$height); // var_dump($img); //测试结果: resource(2) of type (gd) $img是一个资源类型 //使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R G B $green=imageColorAllocate($img, 0x0, 0xff, 0x0); //填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成 imageFill($img,0,0,$green); //输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF //imagePNG($img,'./green.png'); //如果没有第二个参数,表示直接输出 //如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type header('Content-Type:image/png;'); imagePNG($img); //注:一个画布可以输出多次,输出为各种格式 //销毁画布资源 imageDestroy($img);