在安裝了一些第三方函數庫之后,結合圖形處理技能,你就可以迅速使用php創建和處理圖像了。事實上,你也不需要很多幾何學知識――因為我在中學的時候這門功課曾經不及格而現在卻能使用php創建圖像!在使用基本的圖像創建函數之前,需要安裝GD庫。要使用JPEG相關的圖像創建函數還需要安裝jpeg-6b。在圖像中使用Type 1字體的時候還必須安裝t1lib。asdf在這里,你還需要對你的系統設置進行進一步地調整。首先安裝t1lib并結束,然后是jpeg-6b。第三步安裝GD函數庫。確保以上三部分按順序安裝,原因是你需要編譯GD庫才能使用jpeg-6b庫。如果首先安裝jpeg-6b,編譯就會出錯,這會讓你不知所措夠上一段時間。在三函數庫之后,重新配置php。這是在輕松安裝php的DSO版本時的典型方法。然后執行make clean,命令,并在當前配置提示中加入以下代碼:--with-gd=[/path/to/gd]--with-jpeg-dir=[/path/to/jpeg-6b]--with-t1lib=[/path/to/t1lib]最后執行make、make install完成配置。重新啟動 Apache,并運行phpinfo()函數以檢查新功能是否正常運行,然后就可以開始了。取決于安裝的GD庫版本,你可能具有創建GIF或者PNG圖像的能力。關鍵是如果你已經安裝了gd-1.6或者早期版本,則可處理GIF文件,但不能處理PNG文件;如果安裝了gd-1.6或者以后版本,你可以處理PNG文件卻又不能處理GIF文件。創建一個簡單的圖像需要幾個函數。我將按步驟演示如下。輸出包含你所創建圖像MIME類型的文件頭,本例中為PNG。header ("Content-type: image/png"); 使用ImageCreate()創建一變量存放空白圖像。該函數需要一個圖片像素尺寸。格式為ImageCreate(x_size, y_size),對250*250像素的圖片,如下:$newImg = ImageCreate(250,250); 由于此時你的圖像還是空白,所以需要用某些色彩填滿它。但首先需要用ImageColorAllocate()函數按照顏色的RGB值為每種顏色確定名字。函數的格式為ImageColorAllocate([image], [red], [green], [blue])。如是天藍色,應使用:$skyblue = ImageColorAllocate($newImg,136,193,255); 接著,用ImageFill()函數為圖像填充以上顏色。實際上ImageFill()函數有多個版本,如ImageFillRectangle(), ImageFillPolygon()等等。為簡單起見,采用ImageFill()函數進行顏色填充,格式如下:ImageFill([image], [start x point], [start y point], [color])ImageFill($newImg,0,0,$skyblue); 最后,創建最終圖像并破壞圖像流以釋放內存并在結束后整理系統:ImagePNG($newImg);ImageDestroy($newImg); 你的代碼應該看起來像這樣:<? header ("Content-type: image/png");$newImg = ImageCreate(250,250);$skyblue = ImageColorAllocate($newImg,136,193,255);ImageFill($newImg,0,0,$skyblue);ImagePNG($newImg);ImageDestroy($newImg);?> 如果調用腳本skyblue.php 并用自己的瀏覽器訪問它,就會看到一個250*250像素的藍色PNG圖像。還可以用圖像創建函數處理圖像,如對大圖像創建的縮略圖等。假設你打算為某圖片制作一個35*35像素大小的縮略圖。所要做的即創建一個新的35*35像素大小圖像;并產生一個包含原始圖像內容的圖像流;然后改變原始圖像的大小,并將其放到新的空白圖像中去。達到此目的的關鍵函數是ImageCopyResized(),,格式如下所示:ImageCopyResized([new image handle],[original image handle],[new image X],[new Image Y],[original image X],[original image Y], [new image X], [new image Y],[original image X],[original image Y]);注釋在代碼下面:<? /* 發送文件頭以使瀏覽器知道文件類型*/header("Content-type: image/png"); /* 設置變量保存新圖片長寬*/$newWidth = 35;$newHeight = 35; /* 以給定長和寬創建空白新圖片 */$newImg = ImageCreate($newWidth,$newHeight); /* 從原始大圖獲取數據 */$origImg = ImageCreateFromPNG("test.png"); /* 復制更改尺寸后的圖片。使用函數 ImageSX() 及 ImageSY 獲取原始圖片的x及x尺寸 */ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg)); /* 創建最終圖片并清空內存 */ImagePNG($newImg);ImageDestroy($newImg); ?> 如果調用腳本resized.php并使用瀏覽器訪問此文件,可以看到一個35*35像素的縮略PNG圖片。
php技術:PHP中創建并處理圖象,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。