PHP圖片處理技術-GD,
1、開啟GD擴充
extension=php_gd2.dll
Apache restart
2、樣本:
情境:
製作500×300的綠色圖片
①建立畫布
畫布,一種資源型資料。可以操作的映像資源。
建立新畫布(建立)
ImageCreate(寬,高),建立基於調色盤的畫布。
imageCreateTrueColor(寬,高);建立真彩色的畫布。
基於圖片建立畫布(開啟)
imageCreateFromJPEG(圖片地址);
imageCreateFromPNG(圖片地址);
imageCreateFromGIF(圖片地址);
②操作畫布
分配顏色:如果需要在畫布上使用某個顏色,應該先將顏色分配到畫布上。
使用函數:
顏色標識 = imageColorAllocate(畫布,R,G,B);
顏色的表示方式:
RGB
③填充畫布:將填充點,連續並且顏色相同的點進行填充(替換)
使用函數:
imageFill(畫布, 填充位置x, 填充位置Y,顏色標識)完成
位置採用座標進行管理:
原點:0,0,畫布的左上方。
向右,x軸增加,向下Y軸增加。
右下角座標:width-1,height-1
④輸出畫布
將畫布中處理好的圖樣資訊,輸出出來。
典型的:
1輸出到圖片檔案。
2直接輸出。
使用函數:
imagePNG(畫布[, 檔案地址]):
imageJPEG();
imageGIF();
如果沒有第二個參數,表示直接輸出。
註:如果直接輸出到瀏覽器,需要告知瀏覽器,響應資料的類型應該是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);