PHP使用內(nèi)置函數(shù)生成圖片的方法詳解
本文實(shí)例講述了PHP使用內(nèi)置函數(shù)生成圖片的方法。分享給大家供大家參考,具體如下:
第一步:創(chuàng)建圖片
新建一個(gè)php文件,命名為new-image.php(你可以任意命名,方便后面的調(diào)用就行)。
php中有兩個(gè)函數(shù)創(chuàng)建一張圖片:mageCreate()創(chuàng)建一張空?qǐng)D片;ImageCreateFromPng()以現(xiàn)有的png圖片為背景來(lái)創(chuàng)建一張圖片。(這里的”P(pán)ng”可以替換為”jpg”或”gif”,根據(jù)背景圖片的格式來(lái)確定)
$myImage=ImageCreate(400,60); //參數(shù)為寬度和高度 $myImage=ImageCreateFromJpg("http://farm5.static.flickr.com/418978874_c349c14359_o.jpg");
無(wú)論你使用了上面的哪一種方法,我們就創(chuàng)建好了一張圖片,并把圖片存到了$myImage這個(gè)變量中。
第二步:添加顏色
這時(shí)我們需要通過(guò)ImageColorAllocate()函數(shù)來(lái)創(chuàng)建一些顏色,把他們存到變量中,方便后面使用。
$white=ImageColorAllocate($myImage, 255, 255, 255); $black=ImageColorAllocate($myImage, 0, 0, 0); $red=ImageColorAllocate($myImage, 255, 0, 0); $green=ImageColorAllocate($myImage, 0, 255, 0); $blue=ImageColorAllocate($myImage, 0, 0, 255);
第三步:繪制圖形
你還可以使用php的一些內(nèi)置函數(shù)來(lái)添加一些幾何圖形:
ImageEllipse() //繪制橢圓 ImageArc() //繪制曲線 ImagePolygon() //繪制多邊形 ImageRectangle() //繪制矩形 ImageLine() //繪制線條
下面是一個(gè)例子
ImageRectangle($myImage, 50, 20, 200, 15, $blue);
這時(shí),你會(huì)發(fā)現(xiàn)只繪制了矩形的輪廓,如果你想要的是填充的矩形,使用ImageFilledRectangle()方法:
ImageFilledRectangle($myImage, 50, 20, 200, 15, $blue);
第四步:添加文字
我們可以使用imagettftext()函數(shù)來(lái)為圖片添加文字:
你肯定注意到了,在這里你需要選擇字體(此處用的是Fonts/Oblivious font.ttf, 你可以使用你自己的喜歡的字體)。 如果不知道如何來(lái)獲取字體,可以google一下,上面有很多的下載字體的網(wǎng)站,里面的內(nèi)容足夠讓你眼花繚亂了。
第五步:生成圖片
當(dāng)你成功的繪制好了你要顯示的圖片,接下來(lái)就要把它顯示在頁(yè)面中了。首先要做的是,告訴頁(yè)面,你要向他發(fā)送的數(shù)據(jù)是一張圖片:
//這里的png可以換成jpg,或者是gif,根據(jù)你要生成的圖片格式來(lái)確定 header("Content-type:image/png"); ImagePng($myImage);
接下來(lái),因?yàn)槲覀儾辉谛枰?myImage這個(gè)變量了,我們需要把它的內(nèi)存釋放掉:
ImageDestroy($myImage);
第六步:調(diào)用圖片
通過(guò)前面的五步,我們已經(jīng)創(chuàng)建了一張圖片,下面給大家說(shuō)一下如何調(diào)用這張創(chuàng)建好了的圖片。
在HTML文件中,我們使用url來(lái)引入這張圖片:
<img src="new-image.php的路徑" alt="myImage" /> //在src中,寫(xiě)入new-image.php文件的路徑,你就會(huì)發(fā)現(xiàn)剛才創(chuàng)建的圖片已經(jīng)被成功的調(diào)用了
利用imagepng()可生成一個(gè)圖片文件
<?php imagepng($myImage,"xxx.jpg"); ?>
例如:
<?php $myImage=ImageCreate(400,60); //參數(shù)為寬度和高度 $white=ImageColorAllocate($myImage, 255, 255, 255); $black=ImageColorAllocate($myImage, 0, 0, 0); $red=ImageColorAllocate($myImage, 255, 0, 0); $green=ImageColorAllocate($myImage, 0, 255, 0); $blue=ImageColorAllocate($myImage, 0, 0, 255); imagettftext($myImage, 12, 0, 5, 20, $red, "stxingka.ttf", "果凍 Elvis"); ?> <?php imagepng($myImage,"xxx.jpg"); ?>
以上代碼將在根目錄下生成一個(gè)xxx.jpg的圖片文件。
補(bǔ)充:小編在這里推薦一款本站的php格式化美化的排版工具幫助大家在以后的PHP程序設(shè)計(jì)中進(jìn)行代碼排版:
php代碼在線格式化美化工具:http://tools.jb51.net/code/phpformat
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP圖形與圖片操作技巧匯總》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- MySQL模糊查詢(xún)用法大全(正則、通配符、內(nèi)置函數(shù))
- 自學(xué)MySql內(nèi)置函數(shù)知識(shí)點(diǎn)總結(jié)
- MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解
- PHP內(nèi)置函數(shù)生成隨機(jī)數(shù)實(shí)例
- PHP不使用內(nèi)置函數(shù)實(shí)現(xiàn)字符串轉(zhuǎn)整型的方法示例
- 幾個(gè)實(shí)用的PHP內(nèi)置函數(shù)使用指南
- PHP通過(guò)內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況
- MySQL與PHP的基礎(chǔ)與應(yīng)用專(zhuān)題之內(nèi)置函數(shù)
相關(guān)文章
深入解析PHP中逗號(hào)與點(diǎn)號(hào)的區(qū)別
大部分同學(xué)都知道逗號(hào)要比點(diǎn)號(hào)快,但就是不知道為什么,更不知道逗號(hào)與點(diǎn)號(hào)這兩者之間到底有什么區(qū)別。下面小編就來(lái)詳細(xì)的為大家介紹一下,需要的朋友可以過(guò)來(lái)參考下2013-08-08PHP入門(mén)教程之?dāng)?shù)學(xué)運(yùn)算技巧總結(jié)
這篇文章主要介紹了PHP入門(mén)教程之?dāng)?shù)學(xué)運(yùn)算技巧,結(jié)合實(shí)例形式總結(jié)分析了php數(shù)值運(yùn)算、變量檢測(cè)、隨機(jī)數(shù)、絕對(duì)值、取整、最大值、最小值、四舍五入等操作技巧,需要的朋友可以參考下2016-09-09- Smarty是一個(gè)php模板引擎,它分開(kāi)了邏輯程序和外在的內(nèi)容,提供了一種易于管理的方法. Smarty要求web服務(wù)器運(yùn)行php4.0.6和以上版本. smarty安裝需要smarty庫(kù)文件??梢匀ス俜骄W(wǎng)站http://smarty.php.net下載。 網(wǎng)上講了很多安裝的教程,但是我都沒(méi)有成功,所以直接把整個(gè)目錄名改為smarty直接復(fù)制到了網(wǎng)站所在的目錄下,然后打開(kāi)http://網(wǎng)站路徑/smarty/demo/index.php,顯示正常,應(yīng)該算是安裝成功了。2008-03-03
常見(jiàn)的四種POST 提交數(shù)據(jù)方式(小總結(jié))
這篇文章主要介紹了常見(jiàn)的四種POST 提交數(shù)據(jù)方式(小總結(jié))的相關(guān)資料,需要的朋友可以參考下2015-10-10推薦學(xué)習(xí)php sesson的朋友必看PHP會(huì)話(Session)使用入門(mén)
對(duì)比起 Cookie,Session 是存儲(chǔ)在服務(wù)器端的會(huì)話,相對(duì)安全,并且不像 Cookie 那樣有存儲(chǔ)長(zhǎng)度限制,本文簡(jiǎn)單介紹 Session 的使用。2008-08-08PHP使用gearman進(jìn)行異步的郵件或短信發(fā)送操作詳解
這篇文章主要介紹了PHP使用gearman進(jìn)行異步的郵件或短信發(fā)送操作,總結(jié)分析了PHP基于gearman實(shí)現(xiàn)異步的郵件或短信發(fā)送相關(guān)配置、啟動(dòng)與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02PHP實(shí)現(xiàn)全角字符轉(zhuǎn)為半角方法匯總
這篇文章主要給大家匯總介紹了PHP實(shí)現(xiàn)全角字符轉(zhuǎn)為半角方法,從簡(jiǎn)單到復(fù)雜,小伙伴們根據(jù)自己的需求來(lái)自由選擇吧。2015-07-07