第九章 php影象處理(影象建立的基本步驟)
阿新 • • 發佈:2019-01-06
php不僅可以處理文字資料,還可以建立不同的動態影象,比如GIF等
注:在php中可以通過GD擴充套件庫實現對影象的處理,不僅可以建立影象而且可以處理已有影象
- 建立影象
- 繪製圖像
- 生成影象
- 釋放資源
- 圖形驗證碼
- 水印
- 縮放與裁剪
在php中通過GD庫處理影象的操作都是在記憶體中處理,操作完成以後再以檔案流的方式輸出到瀏覽器或儲存在伺服器的磁碟中
建立影象的4個步驟
建立影象
-建立新的:
$img=imagecreatetruecolor(int $a, int $b); //新建一個真彩圖像
-開啟伺服器或網路檔案中已經存在的GIF, JPEG,PNG格式影象
imagecreatefromjpeg( );
imagecreatefrompng( );
imagecreatefromgif( );
imagecreatefromwbmp( );
//建立或開啟失敗的時候會返回字串,並且輸出一條錯誤資訊
imagesx();//輸出畫布寬度
imagesy();//輸出畫布高度
getimagesize();//取得影象大小
繪製圖像
使用各種畫像函式設定影象的顏色,填充畫布、畫點、線段、各種幾何圖案,以及影象新增文字等
//通過建立的影象資源開始繪製 1. imagecolorallocate() //分配顏色 2. imagefill() //區域填充 3. imagesetpixel() //畫一個單一畫素 4. imageline() //畫一條線段 5. imagerectangle() //畫一個矩陣 6. imagestring() //水平的畫一個字串 7. imagettftext() //用TrueType字型向影象寫入文字 8. imagettfbbox() //計算TrueType文字所佔區域 9. imagecopy() //拷貝影象的一部分 10. imagecopymerge() //拷貝併合並影象的一部分 11. imagecopyresampled() //重取樣拷貝部分影象並調整大小
輸出影象
將影象以某種格式儲存到伺服器的檔案中,或者將影象直接輸出到瀏覽器上顯示給使用者,但在影象輸出之前一定要使用header( )函式傳送 Content-type通知瀏覽器,這次傳送的是影象不是文字
輸出影象之前其實還要先生成影象:
//生成影象
header()
imagegif()
imagejpeg()
imagepng()
imagewbmp()
- 下面是把生成的圖片輸出到瀏覽器的方法
<?php header('Content-type:image/jpeg'); //在該函式之前不能輸出任何內容,預設情況下header('Content-type:text/html'); $img=imagecreatetruecolor(200, 200); //新建一個長和高都為200畫素的真彩圖像,$img是資源型別 $color1=imagecolorallocate($img,0,101,124); //給圖片加顏色 $color2=imagecolorallocate($img,208,223,239); imagefill($img,0,0,$color2); //填充顏色 imagejpeg($img); //生成影象 imagedestroy($img); //銷燬影象 /* 整個此php檔案代表的是一張圖片,雖然是php格式,可以把這張圖片輸出到瀏覽器*/
- 下面是把生成的圖片儲存到資料夾的方法
<?php
header('Content-type:text/html;charset=utf-8'); //在該函式之前不能輸出任何內容,預設情況下header('Content-type:text/html');
$img=imagecreatetruecolor(200, 200); //新建一個長和高都為200畫素的真彩圖像,$img是資源型別
$color1=imagecolorallocate($img,0,101,124); //給圖片加顏色
$color2=imagecolorallocate($img,208,223,239);
imagefill($img,0,0,$color2); //填充顏色
if(imagejpeg($img,'ROBIN.jpeg')){ //儲存影象
echo"儲存成功!";
}
imagedestroy($img); //銷燬影象
輸出影象:
header函式注意點:
該函式不能有任何內容,在我們php程式碼的函式裡,是我們使用的開頭路徑,這個不是指web根目錄而是作業系統檔案根目錄,而是作業系統的根目錄。
釋放影象
最後是釋放影象