首頁  >  文章  >  後端開發  >  PHP中建立並處理圖象_PHP教程

PHP中建立並處理圖象_PHP教程

WBOY
WBOY原創
2016-07-21 16:10:35807瀏覽


在安裝了一些第三方函數庫之後,結合圖形處理技能,你就可以迅速使用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圖片。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314218.htmlTechArticle在安裝了一些第三方函式庫之後,結合圖形處理技能,你就可以快速使用PHP建立和處理圖像了。事實上,你也不需要很多幾何學知識-因...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn