PHP圖片處理技術-GD,

來源:互聯網
上載者:User

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);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.