1
2
3
4
5
6
7
8
9
10
11

數學(xué)函數

發(fā)布時(shí)間:2017-07-20 08:04國報   著章 發(fā)布人:毛書朋&nbs師說p;  聽計 浏覽次數:6732

 

關聯課件: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常用事工圖像處理函數

8-7.1.png

 

8-7.2.png

 

8-7.3.png

 

  &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.png

 

圖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.png

圖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.jpg

圖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.jpg

圖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.jpg

圖8-24  原始圖片少錢

8-225.jpg

圖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é)習打下基礎。

 


  • 甄丹丹 2018-01-09 16:13:46
    圖像驗證碼程序是當前Web開(k民道āi)發(fā)中常用的程序