關聯課件:8子項目八 - 數學(xué)函數(點擊在線預覽)
&水遠nbsp; 8.3.6 圖像處理機件函數
&nbs店熱p; &nb城西sp; PHP提供銀睡了一系列函數來實現在網站編程中對(duì)圖像進(jìn)行編輯。雖然使用這(光街zhè)些函數能(néng)夠實現的功能(néng)十分有有生限,無法和功能(néng)強大的專業圖形圖像軟件相比,但是在很多需要動态雜短生成(chéng)圖像、自動批量處理圖像等方面(miàn),能(néng)放書給PHP網站開(kāi)發(fā)者帶來巨大幫助。其中最爲典型的應用有随高師機圖形驗證碼、圖片水印、數據統計中餅狀圖、柱狀圖的生成但去(chéng)等。表8-7中給列出了PHP常用的圖像師體處理函數。
表8-7 PHP常用事工圖像處理函數
&nbs白有p; &nb也亮sp; &n可分bsp;PHP 5提供的圖像處理函數總數超過(g物都uò)了100個,表8-7中僅列出了部分常用函數。
&nb市朋sp; &知東nbsp; &nbs費文p; PHP的圖像處理函數都(dōu從朋)封裝在一個函數庫中,這(zhè)就(jiù)是GD庫。要使我水用GD庫中的函數來進(jìn)行圖像村又處理,必須保證安裝了GD庫。在PHP官方的标準發(fā)行版本動短中,都(dōu)包含了這(zhè)個庫。為金如本書介紹的PHP 5版本,這(zhè)個GD庫存放在PHP安裝目錄下也鐵的ext子目錄下,名爲php_gd2.dll。讀者如果擔心自南要己的PHP版本是否包含這(zhè習輛)個函數庫,可以打開(kāi)PHP安裝目錄查找一下。
&nb數學sp; 并不是php_gd2.dll庫文件醫舞存在,就(jiù)可以使用這(zhè)些函數了。在默認的php.i視林ni設置中,這(zhè)個庫并不自動載入影紅。所以,需要首先打開(kāi)這(zhè)個庫的腦兒自動載入功能(néng),這(zhè)樣(y醫行àng)這(zhè)個庫中的函數就(jiù)像PHP标準函數一樣(yàng家音)可以直接在程序中使用了。打開(kāi去我)的方法很簡單,用記事(shì)本打開(kāi)php.ini配好小置文件,利用查找功能(néng)找到“;extension=php_快筆gd2.dll”這(zhè)一行,將(jiāng)最前面(mià道遠n)的分号去掉,然後(hòu)保存,重新啓暗不動IIS(Apache),這(吧嗎zhè)時(shí)候GD庫已經(jīng)被(bèi)自動影地加載了。如圖8-20所示。
圖8-20 開(kāi)啓GD圖像函數庫
&議匠nbsp; 若窗知要确定此函數庫是否已經(jīng)被(bèi)成(chéng)都電功加載,可以打開(kāi)第2章中講好街過(guò)的PHP環境信息顯示程序,也就(jiù上志)是phpinfo()程序,查看列出的信息中是否有GD一項。該項目中詳細列出好冷了當前PHP的GD庫信息,如圖8-21所示。
圖8-21 GD庫信息
 南店; &nb也就sp; &亮我nbsp; 由于本部分函數個數較多,而且具體使用方法較爲複雜,要在很有限的篇幅内進(jìn輛跳)行一個較全面(miàn)的介紹是十分困難的,這(zhè)裡(lǐ)僅章用給出兩(liǎng)個例子,讓讀者先體會(huì)一下PHP圖像處志近理函數的簡單使用。對(duì)表中列出的其舞少他函數以及未在表中列出的函數,感興趣的讀者可以參考PHP手冊進(jìn)現市行深入學(xué)習。
&醫音nbsp; 8.年哥3.6.2 PHP基本繪圖
&nbs理個p;  是聽; 通過(guò)下面(miàn)一個例子來學(xué)習有關用P還又HP進(jìn)行基本繪圖的方法。輛北
暗媽 白商1: <?php
金從  腦黑; 2: &nb事員sp; //程序8-2拿資2.php:圖像處理函數使用舉例
&nbs謝為p; 到廠 3:  農文; header("Conte老藍nt-type: image/png&quo業冷t;);
&nb森章sp; 也近 &n吃科bsp; 4: 算件$im = @imagecre可慢ate(200, 100) or die("無妹費法創建圖像流");
&月器nbsp; &nbs農笑p;5: &nb得一sp; @imagec筆購olorallocate($im空又, 240, 150, 255);
&學嗎nbsp;  體通; &nb我電sp; 6: &懂照nbsp; $t_color1 哥水= imagecolorallocate($生森im, 0, 0, 0);
 路廠; &n音知bsp; 7: $t_color路媽2 = imagecolorallocate($im,10森秒0,100,100);
事外 &n視分bsp; &n黑樂bsp; 8: &nbs舞房p;imagestring($im鐵靜, 5, 8, 10, "I 黃線like PHP5!", 電弟$t_color1);
 村我; &nb微火sp; 9: &nbs動書p; imagestringup($im,5從器,8,90,"Hell照子o!",$t_color2);
 時不; &nb輛得sp; 10: im們大ageellipse($im,6道些5,65,55,55,$t_color1);
&n文業bsp; &nbs睡有p; 11: &n制為bsp; imageellipse($i理到m,65,65,55,55,$t_color1雪動);
&計看nbsp;  明答; 12: 中子 imagefilledrectang好歌le($im,110,95,160,30,他件$t_color2);
&nbs見跳p; &nb和答sp; 13: image睡黃png($im);
&nb爸道sp;  件睡; 14:  麗兒; imagedestroy($im);書腦
&n跳雜bsp; &n事問bsp; 15: ?>
&窗林nbsp; &nbs輛舞p; 程序8-22.php創建了一幅PNG圖像,并且在圖像上面(miàn)志知進(jìn)行繪圖操作。程序運行結果如鄉他圖8-22所示。
圖8-22 程序8-22行雜.php的運行結果
 雨業; &nbs睡費p; 程序8-22.php第3行指定了圖像的類型,即png多北圖像,這(zhè)樣(yàng)8-站黃22.php雖然是一個PHP程序,但是其作用是動态生雜照成(chéng)一張圖像,因此幾乎等同于一張圖河有像。在本程序中普通的輸出語句如ec暗頻ho等都(dōu)是無效的,這(zhè)一點讀者應當注意公子。
&火我nbsp; &nb器土sp; 第4行用imagecreate()函數創建一幅新圖服費像,兩(liǎng)個參數爲圖像的寬度和高度,單位是像素。此函數返回北行此圖像的數據流,存放于$im變量中。
下車 &nbs錯友p; 第5行用imagecolorallocate()函數設置了圖像的背景顔色吃報。4個參數分别爲圖像流、R色值、G色值、B色值。3個色值合并即産生了器北RGB色值。這(zhè)裡(lǐ)的240,15來匠0,255運行之後(hòu)顯示淡紫色。另外(0,0,0)時林爲黑色,(255,255,255)爲白就城色,(255,0,0)爲紅色等。關于RG的媽B顔色的有關詳細信息請讀者自行查閱有關資料。
&nbs體匠p; &通時nbsp; 市內第6~7行分别生成(chéng)了2種(zhǒng)顔色,存在的不同拿年的變量中以備後(hòu)面(miàn)使用。第一種(zhǒng)爲黑色,錯劇第二種(zhǒng)爲淺灰色。
&nb玩煙sp; 她人第8行用imagestring()函數在圖像上“寫入”了一個字符串。6一務個參數分别表示圖像流、所用字體、寫入點的x坐标、寫去吧入點的y坐标、要寫入的字符串、字符件子串顔色。這(zhè)裡(lǐ)面門著(miàn)有兩(liǎng)點值得注意:第一點是函數的第二個參數取值線謝範圍爲1~5,分别代表了不同大小和是否加粗的5種(zhǒng)黃錢字體,讀者可以試著(zhe)修改此參數來觀察程序運行效果。第二點是這(z可大hè)裡(lǐ)的x,y坐标都(dōu)是相對(duì)于圖像的左上角訊用,最左上角坐标爲(0,0),向(xiàng)右爲x軸,舊輛向(xiàng)下爲y軸。單位都(dōu)是新吃像素。
&nbs輛低p; &門中nbsp; 第9行用imagestringup()函數向(xiàng)圖像中豎向(xià離我ng)寫入一個字符串。函數的參數含義與imagestring()函數相國器同。
 員熱;  員麗; 第10行用imageellipse(機木)函數在圖像中繪制了一個圓。函數第一個參數爲圖像流,最後(hòu)一個爲繪圖所報音用顔色,第2、3、4、5個參數分表表示圓心的x坐标、圓心的y坐标、圓的x方工請向(xiàng)半徑長(cháng)度、圓的y方向(xiàng)半徑長南月(cháng)度。在本例中,繪制了一個圓心在(報那65,65)這(zhè)個點,半徑爲55的正圓。如果要繪制一個橢圓,隻需要确湖件定圓心位置,然後(hòu)分别設置x方向(xiàng)半徑和短南y軸方向(xiàng)半徑即可。當這(zhè生雨)兩(liǎng)個半徑相等時(很行shí)是一個圓,不相等時(shí)是一個橢圓。
&nbs也訊p; &nb師愛sp; &nbs弟生p;第11行用imagefilledrectangle()函大車數繪制了一個矩形,并對(duì)矩形進厭器(jìn)行顔色填充。第一個參數爲圖像流,最後家雨(hòu)一個參數爲填充顔色。第2、3、4、5個參數的含義分别爲矩形左上角x司業坐标、矩形左上角y坐标、矩形右下角x坐标、矩形右下角y坐标。也就腦年(jiù)是說(shuō)隻要提供矩形的左上角和右下角坐标,即可繪務多制此矩形。
&錯我nbsp; &nb習務sp; 第12行用imagepng()函數將(jiāng)此圖像流輸出森湖爲一張png格式的圖片。也就(jiù)是在浏覽亮看器中看到的圖片。
&n影紅bsp; &nb睡業sp; 第13行銷毀了這(zhè)個圖像流。
劇現 日朋 在本例中除了png格式,還(hái)可以把圖像輸出爲jpg、舊國gif等常用的格式,隻需要更改一下程序中第3行所指定的圖像林不類型即可。
&n花窗bsp; 8.3.6.3 網站圖形驗證碼制作
&nbs森會p; &nb南時sp;
 錯機;  就妹; 圖像驗證碼程序是當前Web開(kāi)發(fā)中常用的程序。本章動兒學(xué)習了PHP的圖像處理函數,結合前面(miàn)章節學(xu北公é)習的session函數以及表離北單數據提交技術,可以寫出一個完整科空的圖像驗證碼程序。
&nbs新山p; &煙都nbsp; 驗證碼在網站中的作用一般是防止惡意“灌水”,也就(jiù)是惡意發(fā飛技)布垃圾信息。如果沒(méi)有驗證碼,攻擊者可以利用輔助軟件實現自動提草算交、自動注冊等。由于軟件執行的效率高、速度快且可以連續工作,因此常用來被(分都bèi)攻擊某個網站,制造大量垃圾數據,嚴重影響網站正常運行。
&水站nbsp; &n現電bsp; &中分nbsp;采用了驗證碼的方式之後(hòu),由于驗證碼每次都(dōu)不一樣(yà謝請ng),隻有驗證碼輸入正确才能(néng)提交信息,這(zh唱低è)樣(yàng)輔助軟件就(jiù)無法随意向(xià兵姐ng)服務器提交信息了。因此,驗證碼的設計也有一些原則熱習,如驗證碼的生成(chéng)是随機的,無規律可循。另外,有的輔助軟員海件有文字識别功能(néng),能(néng)夠從圖片中辨析出文字,因此驗證碼行吧中的數字可以采用随機的顔色,而且七扭八歪不易辨認。總之,最理想的驗證碼應匠得該是人的肉眼可以很容易地辨認出來,但是用軟很站件識别就(jiù)極爲困難。
&nbs嗎也p; &n算體bsp; &nbs是會p;鑒于此,在設計這(zhè)個驗證碼程序時(shí),就(jiù)商知不是簡單的創建一幅圖片,然後(hòu)随機生成(chéng)幾個數字寫上去月關,而是再加入一些幹擾。用PHP提供的圖像處理函數,可以在圖像上加入一些密密麻煙數麻的像素點,然後(hòu)随機繪制兩(liǎng)條虛場媽線,再將(jiāng)幾個數字的位置打亂。這(zhè)樣(yàng),機器識别從跳就(jiù)變得十分困難了。
 訊要; &n快女bsp; &河匠nbsp; 本實例用到以下3個文件。
&術下nbsp; &n低遠bsp; 章美8-23-showimg.php:生遠哥成(chéng)驗證碼,將(jiāng)驗證碼寫入圖片,并輸出圖片。
&nb用山sp; &n城喝bsp;8-23-login.html:調用sh微科owimg.php,將(jiāng)用在小戶輸入的驗證碼提交到check.php進(jìn)場西行驗證。
&nbs務好p; &nbs秒放p; &nb他在sp; 8-23-check.php:用來驗證用戶輸入的驗證動光碼是否正确。
&nb生文sp; &男這nbsp;  高錯;下面(miàn)就(jiù)來看一下具業湖體的代碼。
 間街; &nbs短男p; 1: <?php
&nbs門女p; &n聽聽bsp; 2: &n影什bsp; //文件8-23-shoimg.php:生成紙煙(chéng)驗證碼圖片,并輸出
&n一農bsp; &nb土們sp; 3: //随機生成(chéng校生)一個4位數的數字驗證碼
&nbs相如p; &n懂作bsp;  關行;4: 短笑$num="";
&nb吃開sp; &nbs服靜p; 5: for山很($i=0;$i<4;$i ){
間線 &nbs慢在p; &nb月校sp; 6: &n農那bsp;  時西; $num .=吧少 rand(0,9);
&nbs微山p; &n了火bsp; 7: &nb很區sp; }
 家通; &n術照bsp;8: //4我熱位驗證碼也可以用rand(1000,9999)直接生成(chéng愛理)
&n議山bsp; &nb人森sp; 9: 們下 //將(jiāng)生成(chéng)的驗證碼寫通去入Session,備驗證頁面(miàn)使用
光從  公作; 10: sessio現嗎n_start();
&高是nbsp; &高媽nbsp; &nbs房商p; 11: $錯兵_SESSION["Checknu資她m"] = $num;
這店 &nbs靜工p; &n腦那bsp;12:  亮一; //創建圖片,定義顔色值
&懂日nbsp; &nbs來綠p; 13: heade技藍r("Content-type: imag鐘藍e/PNG");
草制 &nb畫能sp;14: &nb家兵sp; srand((double)micr子路otime()*1000000);
&nbs業紙p; &問人nbsp; 15: &輛章nbsp; $im = imagecr還村eate(60,20);
玩快 新門 16: 時內$black = ImageColorAllocate($im, 0,0件站,0);
&票湖nbsp; 暗物 17: 路笑$gray = ImageColorAllocate($im, 20謝開0,200,200);
&兵水nbsp; &nb林笑sp; 18: &nbs時錯p; imagefill($im,0,0,$gray);
&nb自關sp; &裡人nbsp; 19: &n到的bsp; //随機繪制兩(liǎn視對g)條虛線,起(qǐ)幹擾作用
&n作短bsp; &nbs人對p; 20: $style = 短醫array($black, $black, $b也但lack, $black, $bl的報ack, $gray, $gray,
$gray, $gr風海ay, $gra y);
&n街國bsp;  個些; 21: imagesetsty答鐵le($im, $style);
&nb些電sp; &nbs城會p; 22: &短一nbsp; $y1=rand(0,20舊少);
&nb內農sp; &nbs用中p; 23: &n高能bsp; $y2=rand(0,20);
&nbs和劇p;  要訊; 24: $y3=rand(0,20)工街;
&nb會制sp; &議很nbsp; 25: $y4=rand(0,20志子);
&nbs土化p; &nbs飛服p; 26: &日山nbsp; imageline($im, 0, 多店$y1, 60, $y3, IMG_COLOR_STYLED);
 請機; &n我哥bsp; 27: imageline($i高西m, 0, $y2, 60, $y4, IMG_COLOR_STYL的志ED);
 學兵; 數黃 28: /吃國/在畫布上随機生成(chéng)大量黑點,起(醫老qǐ)幹擾作用;
&nb說懂sp; &nb信影sp; 29: 習懂for($i=0;$i<80;$i ){
&n購公bsp; &nbs南劇p; 30:  是問; images請兵etpixel($im, rand(0,60), ra訊國nd(0,20), $black);
&nb船劇sp; &n校到bsp; 內生31: }
&n從又bsp;  車友; 32: &n窗熱bsp; //將(jiāng)四個數字随機顯示在畫布上,字符的水平間距和拍議位置都(dōu)按一定波動範圍随機生成(chéng什我)
&nb道道sp; &nb自市sp; 33: $strx=r體西and(3,8);
&nb低文sp; 用黑 &n多我bsp; 34: 說數 for($i=0;$i<4;物書$i ){
&nbs服下p; &場器nbsp; 35: 腦美 $strpos=rand(1麗為,6);
&地場nbsp;  知訊; 36: &森學nbsp; imag做很estring($im,5,$strx,$strpos, sub裡輛str($num,$i,1), $black);
&nbs自海p; &n拿作bsp;37: &n票喝bsp; &劇小nbsp;$strx =rand(8,12);
&nb吧子sp; &nbs頻少p; 38: &nbs謝下p; }
知校 &n畫高bsp; 39: ImagePNG($im);
 但林; &n唱要bsp; 40: 爸空 ImageDestroy($im);拍話
&科土nbsp; &nbs畫長p; &nbs行舊p; 41: ?>
&nbs這雨p; 海議 程序中的重要位置都(dōu)已經(jīng)做了注釋,再此不再詳細講解。本程日話序運行後(hòu)可以在浏覽器中生成(chéng)一張帶有驗金花證碼的圖片。每次刷新程序都(dōu)會(huì)生成站木(chéng)一個新驗證碼。
書裡 &nbs關做p; 1: <!--文件8-23-lo從吃gin.html:圖形驗證碼程序-->
&nb低海sp;  她紅;2: <HTML>
&nbs錯問p; &nbs低能p; &n做亮bsp;3: &n嗎舊bsp; <HEAD>
 哥體; &n照關bsp; 到妹 4:  河現; &nb場化sp; <TITLE>爸木圖形驗證碼程序</TITLE&g拍姐t;
&nb會討sp; 愛靜 5: &nbs山市p; </HEAD&她草gt;
&nb件鄉sp; &n厭上bsp; 6:  一文; <BODY>
&nbs都看p; &nb中女sp; &n村件bsp; 7: &n國志bsp; 文這 <form服什 action="8-西爸23-check.php"長睡; method="post&qu視體ot;>
&n放亮bsp; 現唱 8: &nb高時sp; &nbs著少p; <img src=&q放廠uot;8-23-showimg.php"><br&雪公gt;
 草店; &nb鄉通sp; 9: &林我nbsp; &nbs有飛p; 請輸入驗證碼:<input 草爸type="text" name="p湖兒asscode">年線
&器內nbsp; &nbs都會p;10: &區議nbsp; 森吃 <草服;input type=submit value="确定&q吃得uot;>
&nbs路開p; &n舞很bsp; 11: &n謝謝bsp; </f件器orm>
&nbs請鐵p; 器時 &nb票放sp;12: &熱湖nbsp; </BODY>
&nb筆地sp; &nbs下頻p; 13: </HTML>
 間海; &nbs市頻p; 本程序是一段純HTML代碼,無需多做解釋哥答。惟一值得注意的是,在調用這(zhè)個圖片時(shí),采用“<img飛年 src=“8-23-showimg.php”>”民看的方式。因爲驗證碼圖片本身是一張圖片,所以使用<妹門img>标簽來引用。而這(zhè)張圖片又是用PHP程序生成(ch很自éng)的,因此直接用“src= 8-23房作-showimg.php”來調用。運高現行結果如圖8-23所示。
&n票愛bsp; &nbs雪可p;
圖8-23 程序8-23-login.h說坐tml的運行結果
 飛科; &大好nbsp; 1: <?php
&nb商會sp; &nbs章商p; 2:  船有; //驗證用戶輸入的驗證碼是否正确
&化吃nbsp; 能兵 3: &錯道nbsp; session新們_start();
 也校; 生又 4: &還制nbsp; $pass喝雜code=$_SESSION[&qu購飛ot;Checknum"];
&nbs線公p;  風金; 5: &nb南跳sp; $usercode=$了理_POST["passc鄉信ode"];
&nb我藍sp; 亮坐 6: &n廠到bsp; if($passcod很地e == $usercode){
&nbs雨技p; &nbs筆喝p; 7: &那很nbsp; echo地費 "驗證碼正确!驗證通過(guò)!";
&n些吃bsp; &n麗看bsp;8: &現農nbsp;}else{
&n窗站bsp; &n海信bsp; 9: &nb費從sp; echo &得腦quot;驗證碼輸入錯誤!驗證失敗!&q器錢uot;;
&nb弟我sp; &nbs笑村p; 10: }
&nb拍訊sp; 在愛 11: ?>
&光飛nbsp; &nb機喝sp;程序第3行是將(jiāng)ses通做sion中存儲的正确的驗證碼讀下討取出來。第4行將(jiāng)用戶輸入的驗證碼接收過快議(guò)來。然後(hòu)進(jìn鄉公)行比較,如果相等,則說(shuō)明用戶輸入鄉體的驗證碼正确,否則不正确。
&雜歌nbsp; &nbs為術p; 8.3.6.4 圖片水印制作 &nbs件兒p;
&n明坐bsp; 雪森 &大區nbsp; &nb民都sp; 在弟 &n慢自bsp; &好分nbsp;  空廠; &nbs兒城p; &遠科nbsp; &開議nbsp; &nbs化黃p;
&nb紙到sp; &n有作bsp; 不僅可以直接創建一個圖像流來繪制圖形,還(的西hái)可以將(jiāng)一張已有的圖片東黃作爲圖像流讀入,然後(hòu)在金能此基礎上對(duì)圖像進(jìn)行處理。這(zhè)一功能(n費廠éng)常用來制作圖像水印。所謂圖像水印,就(jiù)是在圖像上标上一些特著南殊的圖形或符号,用來作爲圖像所有者的标志或者防農村止圖片被(bèi)盜用。下面(miàn)我們就(jiù)看一個這(zh分兒è)樣(yàng)的例子。
&n們師bsp; &nb女木sp; 本例使用了一張原始圖片pic.jpg,現在用PHP將窗黃(jiāng)此圖片進(jìn)行處理,在圖片表面(m暗間iàn)按一定規律加上文字标簽,産生水印效果,使之不能(néng)被(bèi來家)直接盜用。
媽爸 如會 1: <?php
&n綠畫bsp; &nb但聽sp; 2: /商訊/文件8-24.php:爲圖片加水印
&火我nbsp; 技自 3: &nb頻大sp; he嗎河ader("Content-type: image/jpe民錢g");
河司  快師;4:  為子;$im = imagecre去他atefromjpeg("pi通哥c.jpg");
&nbs花也p; 5: &n業來bsp; $white = ima說刀gecolorallocate($im,255坐北,255,255);
懂車 &n街都bsp; 6: &n水拿bsp; $width=images區爸x($im);
&n議黃bsp; &好讀nbsp; 7: $聽跳height=imagesy($im);
 化務; &nb能人sp; 8: &師劇nbsp; $x=0;
為看 &n坐那bsp; 9: &nbs市得p;$y=0;
 道些; 物為 匠來10: w姐熱hile($x<$widt醫姐h && $y東遠<$height){
看要 光頻 &n風短bsp; 11: &n舊船bsp; &nb票道sp; imagestr雨外ing($im,2, $x,$y,&q火厭uot;https://www.xxx.com", $鐘爸white);
輛費  男慢; 12: &nb海美sp; &nbs國請p; $x =20;
&nb農跳sp; &nb校吃sp; 13: &看我nbsp;  大樂; $y =20;
&nb白錯sp; &n業紙bsp; 14: }
&nb南作sp; 15: &n物到bsp; imagejpeg($im);
&n冷見bsp;  去物; 16: 多著imagedestroy($im);
&nbs城理p; &n了唱bsp; &nb紅關sp; 17: ?>
身雪 你風 本程序第3行設定本頁面(miàn)輸出類型爲j懂南peg圖像。
&n鐘很bsp; &nbs在那p; 第4行用imagecreatefo時聽rmjpeg()函數打開(kāi)著們了一張圖片pic.jpg,并返回此圖片的數據流。
&票請nbsp; &nb頻民sp; 第5行定義了一個顔色(白色)。
&不鐵nbsp; 離光 &nbs人明p;第6~7行用imagesx()和imagesy()函數小物取得圖片pic.jpg的原始尺寸。
&nbs視電p; &nbs吧金p; &外慢nbsp; 第8~9行定義了用于控制文字添加位置的兩(liǎng)個變量。店紙
湖如 &報好nbsp; 第10~14行用循環向(xiàng)圖片中添加多關唱行文字,用$x和$y兩(liǎng)個變量控制位置和循環次數。
&北這nbsp; 第15行輸出此圖片,第16行銷毀數據流。
&綠司nbsp; &nbs的議p;程序運行前和運行後(hòu)的圖跳門像分别如圖8-24和圖8-25所示。
圖8-24 原始圖片少錢
圖8-25 程序8-24.php的運行結果
&n湖黃bsp; &nbs又個p; 可以看到,處理的後(hòu)的圖片上加入了文字标記,兒學這(zhè)就(jiù)基本達到了處理意圖。但是同時(s如業hí)也可以看出,處理後(hòu)的圖片自樂由于文字的加入影響了圖像的觀賞性。因此水印如那近何加,加在什麼(me)位置,即能(néng)起(qǐ)到水印的作用,數用又不嚴重影響美觀,才是在處理中最應考慮務近的。
農外  爸樹; PHP的圖像處理函數就(jiù小問)介紹這(zhè)些,希望讀者對(duì)此有一微技個基本的了解,爲以後(hòu)深入子電學(xué)習打下基礎。
圖像驗證碼程序是當前Web開(k民道āi)發(fā)中常用的程序