PHP中怎么動(dòng)態(tài)創(chuàng)建圖象

PHP中怎么動(dòng)態(tài)創(chuàng)建圖象,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

在成都做網(wǎng)站、成都網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷成為有效果、有回報(bào)的無(wú)錫營(yíng)銷推廣。成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)10年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

PHP腳本怎樣動(dòng)態(tài)創(chuàng)建圖象

在這里,你還需要對(duì)你的系統(tǒng)進(jìn)行進(jìn)一步地調(diào)整。首先,你必須安裝t1lib以提供圖象處理支持,接下來(lái)要安裝jpeg-6b。第三步是安裝GD函數(shù)庫(kù)。你得按順序做完這三件工作,原因是你需要編譯GD庫(kù)才能使用jpeg-6b庫(kù),如果jpeg-6b步首先安裝,編譯就會(huì)出錯(cuò),到那時(shí)候你就是忙的團(tuán)團(tuán)轉(zhuǎn)也沒(méi)辦法了。

在安裝完以上的三個(gè)函數(shù)庫(kù)之后,你還要重新配置PHP。這可是你在安裝PHP的DSO版本時(shí)的拿手好戲噢!接著執(zhí)行makeclean,命令,然后在當(dāng)前配置指示符里加入以下代碼:

--with-gd=[/path/to/gd]

--with-jpeg-dir=[/path/to/jpeg-6b]

--with-t1lib=[/path/to/t1lib]

最后順序執(zhí)行make、makeinstall命令完成配制任務(wù)。重新啟動(dòng)Apache,運(yùn)行phpinfo()函數(shù)檢查性新功能是否正常運(yùn)行。

和你安裝的GD庫(kù)有關(guān),你可能或者不可能具有創(chuàng)建GIF或者PNG圖像的能力。關(guān)鍵在于:如果你已經(jīng)安裝了gd-1.6或者早期版本,那么你可以處理GIF但不能處理PNG。如果安裝了gd-1.6或者以后版本,你可以處理PNG但又不能處理GIF。

創(chuàng)建一個(gè)簡(jiǎn)單的圖像需要采用好幾個(gè)函數(shù)。我會(huì)按步驟帶你學(xué)習(xí)這一過(guò)程:

輸出一個(gè)文件頭,其中包含了你所創(chuàng)建圖像的MIME類型,在我們的例子中就是PNG。

使用ImageCreate()創(chuàng)建一個(gè)變量存放空白圖像。該函數(shù)需要以像素為單位的圖像大小。格式是ImageCreate(x_size,y_size),對(duì)250-X-250像素的圖像而言,用法如下:

$newImg=ImageCreate(250,250);

因?yàn)槟愕膱D像現(xiàn)在還是空白,所以你還要設(shè)法用某些色彩填滿它,但是,首先你需要按照顏色的RGB值為每種顏色分配名字,這要用到ImageColorAllocate()函數(shù)。函數(shù)的格式是ImageColorAllocate([image],[red],[green],[blue])。如果是天藍(lán)色,具體代碼如下:

$skyblue=ImageColorAllocate($newImg,136,193,255);

接著,你需要調(diào)用ImageFill()函數(shù)為圖像填充以上的顏色。ImageFill(),函數(shù)有好幾個(gè)版本,比如ImageFillRectangle(),ImageFillPolygon()等等。為簡(jiǎn)單起見(jiàn),我們就采用ImageFill()函數(shù)進(jìn)行顏色填充,格式如下:

ImageFill([image],[startxpoint],[startypoint],[color])

ImageFill($newImg,0,0,$skyblue);

最后,你創(chuàng)建了圖像并破壞圖像流以釋放內(nèi)存:

ImagePNG($newImg);

ImageDestroy($newImg);?>

具體的代碼看起來(lái)很像下面的樣子:

$newImg=ImageCreate(250,250);

$skyblue=ImageColorAllocate($newImg,136,193,255);

ImageFill($newImg,0,0,$skyblue);

ImagePNG($newImg);

ImageDestroy($newImg);

?>

如果你調(diào)用這個(gè)腳本skyblue.php并用自己的瀏覽器訪問(wèn)它,你就會(huì)看到一個(gè)250-X-250像素大的藍(lán)色PNG圖像。

你還可以用圖像創(chuàng)建函數(shù)處理圖像,比如創(chuàng)建大型圖像的縮微圖等。

假設(shè)你打算為某個(gè)圖片制作一個(gè)35-X-35像素大小的縮微圖。你要做到就是創(chuàng)建一個(gè)新的35X35像素大小的圖像;制造出一個(gè)包含其原始圖像內(nèi)容的圖像流;然后改變?cè)紙D像的大小,并把它放到新的空白圖像中去。

用來(lái)達(dá)到以上目的的關(guān)鍵函數(shù)就是ImageCopyResized(),,該函數(shù)的格式如下所示:ImageCopyResized([newimagehandle],[originalimagehandle],[newimageX],[newImageY],[originalimageX],[originalimageY],[newimageX],[newimageY],[originalimageX],[originalimageY]);

PHP腳本怎樣動(dòng)態(tài)創(chuàng)建圖象

以下是代碼注釋。

header("Content-type:image/png");

/*setupvariablestoholdtheheightandwidthofyournewimage*/

$newWidth=35;

$newHeight=35;

/*createablank,newimageofthegivennewheightandwidth*/

$newImg=ImageCreate($newWidth,$newHeight);

/*getthedatafromtheoriginal,largeimage*/

$origImg=ImageCreateFromPNG("test.png");

/*copytheresizedimage.UsetheImageSX()andImageSYfunctionstogetthexandysizesoftheorginalimage.*/

ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));

/*createfinalimageandfreeupthememory*/

ImagePNG($newImg);

ImageDestroy($newImg);?>

看完上述內(nèi)容,你們掌握PHP中怎么動(dòng)態(tài)創(chuàng)建圖象的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站欄目:PHP中怎么動(dòng)態(tài)創(chuàng)建圖象
瀏覽路徑:http://bm7419.com/article36/jjcpsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)建站、App設(shè)計(jì)營(yíng)銷型網(wǎng)站建設(shè)、微信公眾號(hào)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)