1
2
3
4
5
6
7
8
9
10
11

圖像處理函數

發(fā)布時(shí)間:2017-07-們去20 08:04   信說 發(fā)布人:毛書朋   照問 浏覽次數:6935

 

關聯課件:8子項目八 - 圖像處理函數(點擊在線預覽)

 

 

8.3.6.1  圖像處理函數概術村述

PHP提供了一系列函數來實現在網土商站編程中對(duì)圖像進(jìn)行編輯。雖然使森影用這(zhè)些函數能(néng)夠實現的功能(nén國道g)十分有限,無法和功能(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

 

      &nb匠來sp;   &nbs科時p; PHP 5提供的圖像處理函數總議吧數超過(guò)了100個,表8照兒-7中僅列出了部分常用函數。

   &銀路nbsp;  還信     &低會nbsp;PHP的圖像處理函數都(dōu)封裝在一個函數庫中,這(zhè)就(jiù做謝)是GD庫。要使用GD庫中的函數來進(jìn)行圖你如像處理,必須保證安裝了GD庫。在PHP官方的标準發(fā)放森行版本中,都(dōu)包含了這(zhè)個高西庫。如本書介紹的PHP 5版本,這(zhè)個GD庫存放城那在PHP安裝目錄下的ext子目錄下,名爲php_gd2.d雜聽ll。讀者如果擔心自己的PHP版本是否包含這(z西話hè)個函數庫,可以打開(kāi)PHP安裝目錄月河查找一下。

     &n頻光bsp;     &嗎路nbsp;并不是php_gd2.dll庫文件存在,就(jiù)可以使用這(zhè)些函數雨慢了。在默認的php.ini設置中,這(zhè)個庫并不自動載新匠入。所以,需要首先打開(kāi)這(zhè)個庫的自動載入很日功能(néng),這(zhè)樣(yàn匠輛g)這(zhè)個庫中的函數就(jiù)像PH車樂P标準函數一樣(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所示。

   &nb器如sp;     &nb森去sp;  

8-20.png

圖8-20  開(kāi)啓GD圖像函數庫

 

    &n花美bsp;   &nb美又sp;   若要确定此函數庫是否已經(j學金īng)被(bèi)成(chéng)功加載,可以打學離開(kāi)第2章中講過(guò)的PHP環境信息顯示討子程序,也就(jiù)是phpinfo()程序,查看列出的信息中是很畫否有GD一項。該項目中詳細列出了當前PHP的GD庫信息,如圖8-21光樂所示。

8-21.png

圖8-21  GD庫信息

 

     間厭   &n花工bsp;   由于本部分函數個數較多,而且具體使用方法較爲複雜,要在很有限的的金篇幅内進(jìn)行一個較全面(miàn)的介服少紹是十分困難的,這(zhè)裡區家(lǐ)僅給出兩(liǎng)個例子金書,讓讀者先體會(huì)一下PHP圖像處理函數的簡林音單使用。對(duì)表中列出的其他函數以及未在表中列出的函數,感興趣醫上的讀者可以參考PHP手冊進(jìn)行見化深入學(xué)習。

 

   &n西村bsp;    &nbs高懂p;   8.3.6.2  PHP基本繪圖

 

      光木     &n都北bsp;通過(guò)下面(miàn)一個例子來學(火鐵xué)習有關用PHP進(jìn)就車行基本繪圖的方法。

    通男      &子飛nbsp; 1:  <?php兵和

  &nb去又sp;     &nbs機舞p;   2:     //程序8-民校22.php:圖像處理函數使用舉例

     &著錢nbsp;     &nb訊行sp;3:     header("區分;Content-type: image鐵水/png");

    &她廠nbsp;     &nb分錯sp; 4:     $im = @光機imagecreate(200, 100) or 弟樹die("無法創建圖像流");

    &n湖上bsp;  &n喝區bsp;    5:   照北  @imagecolorallocate($im, 240,近間 150, 255);

    &nbs船購p;  &nbs購書p;   &吃空nbsp;6:     $t_co聽化lor1 = imagecolorallocate($im, 0, 0,鐵和 0);

   &nbs對務p;    &n話區bsp;  &綠大nbsp;7:   &nbs我白p; $t_color訊我2 = imagecolorallocate($im,100文多,100,100);

   &nbs又暗p;   &nb門友sp;    8:    &nbs年化p;imagestring($im, 5, 8, 10,  &城說quot;I like PHP5!", $裡費t_color1);

     短民     &了電nbsp; 9:   &n機劇bsp; imagestringup($im,5,8,9嗎志0,"Hello!&qu快農ot;,$t_color2);

   &些讀nbsp;     &n愛老bsp;  10:    imageellip雜笑se($im,65,65,55,55,$t_color1);

   &nb從明sp;    視風  &nb去說sp; 11:    imageellip務內se($im,65,65,55,55,$t多腦_color1);

      &區劇nbsp;  &nbs腦男p;  12:    im兵輛agefilledrectangle($im,110,95,我家160,30,$t_color2);

    &nb間林sp;     &n關銀bsp; 13:  &nbs務長p; imagepng($im);

   裡腦      &n生空bsp;  14:  &n白費bsp; imagedestroy($im);

     化關;    物友   15: ?>

    &信近nbsp;   線亮;    程序8-22.php創建了一幅PNG圖像,并且在圖長市像上面(miàn)進(jìn)行繪圖操作。程序運行結果如圖8火謝-22所示。

  &nbs書村p;     &n錢藍bsp;   

8-22.jpg

圖8-22  程序8-22.php的運行結醫會果

 

   讀長;   &nbs道議p;     程序8-22.php第3行指定了圖像的類型,即png圖像,這(zhè)樣(yà匠坐ng)8-22.php雖然是一個PHP程序,但是其作用鐵玩是動态生成(chéng)一張圖像,因此幾乎等同于拍行一張圖像。在本程序中普通的輸出語句海師如echo等都(dōu)是無效的,呢愛這(zhè)一點讀者應當注意。

    &秒頻nbsp;    &n哥討bsp;  第4行用imagecreate(場醫)函數創建一幅新圖像,兩(liǎng)個參數爲圖女在像的寬度和高度,單位是像素。此函數返回此圖像的數很能據流,存放于$im變量中。

      &小但nbsp;  動就;   第5行用imagecoloral也公locate()函數設置了圖像的背景顔色。4個身水參數分别爲圖像流、R色值、G色時友值、B色值。3個色值合并即産生了RGB靜房色值。這(zhè)裡(lǐ)的240,150,255拍自運行之後(hòu)顯示淡紫色。另外(0,0,0)爲黑色,(255話不,255,255)爲白色,(255,0,0)爲紅色等。關厭到于RGB顔色的有關詳細信息請讀者自行查閱有關資料。

    風什   &nbs地習p;   &雨冷nbsp;第6~7行分别生成(chéng)了2種(zhǒng)顔色,存在的不同的變量答舊中以備後(hòu)面(miàn)使用。第一種(zhǒng)爲黑門科色,第二種(zhǒng)爲淺灰色。

     員作    的很;   第8行用imagestring制的()函數在圖像上“寫入”了一個字符串。6個參數分别表示小雨圖像流、所用字體、寫入點的x坐标、寫入點的y呢就坐标、要寫入的字符串、字符串顔色。購北這(zhè)裡(lǐ)面(miàn)有兩(liǎng)點值得注意:第一點是函數員票的第二個參數取值範圍爲1~5,分别代表了不同大小和是否加粗的5種(zh月自ǒng)字體,讀者可以試著(zhe)修改此參數來觀察程序運行章車效果。第二點是這(zhè)裡(lǐ)的x,y坐标都(dō費師u)是相對(duì)于圖像的左上角,最遠體左上角坐标爲(0,0),向(xiàng)右爲x軸,向(xiàng)下爲y軸這地。單位都(dōu)是像素。

    &nb在能sp;   都是    第9行用imagestringup()函數向(xiàng)圖像中豎向(xi腦微àng)寫入一個字符串。函數的參數含義與image通慢string()函數相同。

    &nbs姐裡p;   通窗;   &nbs為街p;第10行用imageellipse()函數在圖像中繪習民制了一個圓。函數第一個參數爲圖像流,最後(hò用風u)一個爲繪圖所用顔色,第2、3、4、5個參數分區海表表示圓心的x坐标、圓心的y坐标、圓的x方向(xiàn通刀g)半徑長(cháng)度、圓的y方向(xiàng)半兒藍徑長(cháng)度。在本例中,繪制了一個圓心在(6說用5,65)這(zhè)個點,半徑爲5分嗎5的正圓。如果要繪制一個橢圓,隻需要确定圓土拿心位置,然後(hòu)分别設置x方向(xiàng)半徑和y軸器紅方向(xiàng)半徑即可。當這(zhè)兩(liǎng)個半徑相公廠等時(shí)是一個圓,不相等時(shí)物去是一個橢圓。

     &nbs看對p;    歌技;  第11行用imagefilledrectangle()函數繪制了一個矩形,并對美子(duì)矩形進(jìn)行顔色填充。第一個參數爲圖像流,金煙最後(hòu)一個參數爲填充顔色。第2、3、4、5個參數的含義分别了飛爲矩形左上角x坐标、矩形左上角y坐标、矩形右下角x坐标、矩形下影右下角y坐标。也就(jiù)是說(shuō)隻要提供矩形的左上角和右下角區線坐标,即可繪制此矩形。

  &nb黑家sp;  &街近nbsp;     問紙; 第12行用imagepng()函數將(jiāng)此圖像流輸出爲一張png格式中北的圖片。也就(jiù)是在浏覽器中看到的圖片。

      &水年nbsp;     第13行銷毀了這(zhè)個圖像流。

     &nb文大sp;      通報在本例中除了png格式,還(hái)不視可以把圖像輸出爲jpg、gif等用理常用的格式,隻需要更改一下程序中第冷間3行所指定的圖像類型即可。

 

   來鄉;   &nbs河關p;     8.3.6.3  網站圖形驗花空證碼制作     &n道街bsp;    

      腦火 

     &nbs山雨p;    &計票nbsp; 圖像驗證碼程序是當前Web開(kāi)發(fā)中常用的程序。本章學(xué大但)習了PHP的圖像處理函數,結合前面(miàn)章節她飛學(xué)習的session函數以及表線東單數據提交技術,可以寫出一個完整的圖像驗證碼程序。

   &n愛男bsp;   &n高友bsp;   媽工; 驗證碼在網站中的作用一般是防止惡意“農件灌水”,也就(jiù)是惡意發(fā)布雨白垃圾信息。如果沒(méi)有驗證碼,攻擊者可以利用輔助軟件實現自從花動提交、自動注冊等。由于軟件執行的效率高、速度快且可以黃姐連續工作,因此常用來被(bèi)攻擊某個網站林可,制造大量垃圾數據,嚴重影響網站正常運行。玩為

   &nbs師南p;     服信;   采用了驗證碼的方式之後(hòu),由于驗證碼每次都(d小喝ōu)不一樣(yàng),隻有驗證碼輸入正确才能(néng)提交信息,這(zh聽多è)樣(yàng)輔助軟件就(jiù)無法随意向(xiàng)服務器提交信息了但高。因此,驗證碼的設計也有一些原則內我,如驗證碼的生成(chéng)是随機的,無規律可循。另外,有的輔事說助軟件有文字識别功能(néng),跳拿能(néng)夠從圖片中辨析出文字,因此驗證碼鐘裡中的數字可以采用随機的顔色,而且七扭八歪不易辨認。總之,最理想的吃海驗證碼應該是人的肉眼可以很容易地辨認出來,但是用軟件識别讀做就(jiù)極爲困難。

    &訊能nbsp;    &n南冷bsp;  鑒于此,在設計這(zhè)個驗證碼程序時(shí),就(jiù)不是兵草簡單的創建一幅圖片,然後(hòu)随機生成(ché間黑ng)幾個數字寫上去,而是再加入一些幹擾。用PHP提供的圖像處理函那男數,可以在圖像上加入一些密密麻麻的像子了素點,然後(hòu)随機繪制兩(liǎng)條虛線,再將(jiāng)幾個爸微數字的位置打亂。這(zhè)樣(yàn新朋g),機器識别就(jiù)變得十分困長工難了。

      &nb錢票sp;     本實例用到以下3個文件。

    &nb舊老sp;     &n國又bsp; 8-23-showimg.php:生成(chéng)驗證一樹碼,將(jiāng)驗證碼寫入圖技體片,并輸出圖片。

   &n朋科bsp;    文雨;   &n厭不bsp;8-23-login.html:調用sh術秒owimg.php,將(jiāng)用戶輸入的驗證碼提交到check.們北php進(jìn)行驗證。

      &nb讀愛sp;   懂到  8-23-check.php:用來驗證用戶腦雪輸入的驗證碼是否正确。

   東影     &nbs動我p;   下面(miàn)就(jiù)來看一下具體的代碼。

    錯謝     &nb男樹sp;  1:  <?php

     區樂      &子雪nbsp;2:  &n短討bsp;  //文件8-23-shoimg.p市路hp:生成(chéng)驗證碼圖片,并輸出

   &nb公船sp;     &資有nbsp;  3:    南玩 //随機生成(chéng)一個4位數的數會藍字驗證碼

      友明;      4:   樂花;   $num="";

      &文請nbsp;     5:  &n志從bsp;   for($i=0;$i機鄉<4;$i  ){

  &nbs姐人p;     &nb會他sp;   6:  &nbs煙吃p;   &nb舊水sp;  $num .= rand(0,9);

   &外黑nbsp;     劇信;   7:     &n區地bsp;}

    長這   妹船     照區;8:     //4位驗證碼也可以用商她rand(1000,9999)直接生成(chéng)

     可女    &nbs但理p;  9:   &n山動bsp; //將(jiāng)生成(chéng)的驗證碼寫笑光入Session,備驗證頁面(m中司iàn)使用

   &n美議bsp;   &舞秒nbsp; &nbs就做p;  10:     s但知ession_start();

      請白  &nb亮木sp;  們算 11:   間鄉  $_SESSION["數學Checknum"] = $num;

  &nb有子sp;     店信    12:   &nb又朋sp; //創建圖片,定義顔色值

      &兒紙nbsp;  &n書空bsp;  13:     header工這("Content-type: image費內/PNG");

   &n在章bsp;    &她街nbsp;   多習;14:     srand(鐘們(double)microti問木me()*1000000);

    &n這雨bsp;    &n腦坐bsp;  水藍15:    麗商; $im = imagecreate(60,20)輛體;

  &nb靜雨sp;   &nbs費高p;     16:     $b章來lack = ImageColorAllocate($森算im, 0,0,0);

      秒土    &自還nbsp; 17:  &n河章bsp;  $gra我話y = ImageColorAlloc黑票ate($im, 200,200,200);

      &nb明男sp;    什厭 18:     imagefi匠玩ll($im,0,0,$gray);

    &nbs地明p;     自明;  19:  &用資nbsp;  //随機繪制兩(liǎng)條虛嗎雪線,起(qǐ)幹擾作用

      &鐘人nbsp;    員老 20:     $s短民tyle = array($black, $black, $black, 房了$black, $black, $gray, $gra市謝y,
 $gray, $gray, $gr南答a y);

      亮樹   &n校可bsp;  21:    i河朋magesetstyle($im, $style);

    樂你;   計舞;    &nbs間離p;22:  &愛購nbsp; $y1=rand(0,20從在);

      &n森笑bsp;  問師  &nbs你站p;23:    $y2=rand(0,20);白線

   &nbs又長p;      木愛  24:   拿上; $y3=rand(0,20);

      樹開;     &nbs麗亮p;25:   慢吧 $y4=rand(0,20);

    文答;  &nb下熱sp;    &nbs空大p;26:    imageline(時看$im, 0, $y1, 60, $y3, IMG_COLOR_STYLED吃短);

      &n志年bsp;   &nb自人sp; 27:    imageline($im, 喝舞0, $y2, 60, $y4, IMG_COLOR_STYLED);

    &nb跳科sp;    西但;   28:    //在畫布上随機生成(ch子錢éng)大量黑點,起(qǐ)幹擾作用;

     裡道    &nb有銀sp;  29:  低劇  for($i=0;$i<80;$i  事視;){

    &nbs兵水p;     &nbs間厭p; 30:   &nb國雨sp;     im照我agesetpixel($im, r花信and(0,60), rand(0,房為20), $black);

    &得嗎nbsp;    他影;   31:    }

    外歌      &n微廠bsp; 32:    //將(jiāng)四個數字随機頻兵顯示在畫布上,字符的水平間距和位置都(dōu)土體按一定波動範圍随機生成(chéng)

      高弟;  &nb低短sp;   33:     $str明但x=rand(3,8);

   &n章舊bsp;   &nb高慢sp;    34:   和費;   for($i=0;$i<4;$他間i  ){

   &nbs錢公p;     &訊呢nbsp;  35:       &白站nbsp; $strpos=rand(1,6);

     &微舞nbsp;  拍件    36:       &n短照bsp; imagestring($im,5,$strx,$st長秒rpos, substr($num,$i,1), $black錢歌);

    &nbs劇睡p;    &校我nbsp;  37:    &nb民不sp;    $區用strx =rand(8,12);

   亮技;   外算;  &nbs跳要p;   38:    }

      河如;    微員;  39:    ImagePNG($錯她im);

     &nb文你sp;  街話    40:    ImageDestr區你oy($im);

     &n高木bsp;     &秒訊nbsp;41: ?>

   &nb腦快sp;  &時明nbsp;  &n制我bsp;  程序中的重要位置都(dōu)已經(jīng)做了注釋,再此不河小再詳細講解。本程序運行後(hòu河飛)可以在浏覽器中生成(chéng)一張帶有驗證碼的件我圖片。每次刷新程序都(dōu)會(huì)生成(chéng)一山視個新驗證碼。

   &nbs廠有p;  &空電nbsp;   &n冷麗bsp; 1:  <!--文件8-23-login.html:圖形驗證志弟碼程序-->

   &有秒nbsp;   &nb件火sp;    2:  <HTML>

     &nb妹見sp;  &機日nbsp;   3:      <放離HEAD>

  &nb她用sp;   腦裡   &費鐵nbsp;  門為;4:     &nbs見務p;    <TIT黑謝LE>圖形驗證碼程序</TITLE>

     &快那nbsp;  &nb冷事sp;   5:   資黑;   </HEAD>

    時醫      短在;  6:  &刀那nbsp;    <BODY>

    &nbs海鄉p;   &件笑nbsp; &nbs行跳p; 7:     &nb都問sp;   &nbs分得p;<form action="8-23-ch音資eck.php" method="post"&g歌輛t;

   到弟  &nb兒煙sp;     黃鐵; 8:      &著喝nbsp; &nbs司火p;   &nb訊懂sp; <img src=&quo內光t;8-23-showimg.php">的森;<br>

   &信大nbsp;     &木員nbsp;  9:    &n在生bsp;     訊些  &nb樂腦sp; 請輸入驗證碼:<inp空內ut type="text"長電 name="passcode&qu器間ot;>

      &n影窗bsp;   &n少暗bsp; 10:      兵妹     &nbs去河p; <input type=submit va照商lue="确定">

      &n刀校bsp;     11:     &nb動爸sp;   </form但日>

      &nb水放sp;    小見; 12:      &l請化t;/BODY>

     &nbs妹商p;  &n照火bsp;   13: </HTML>

     &nbs說家p;      熱嗎本程序是一段純HTML代碼,無需多做解釋。惟一值得注懂遠意的是,在調用這(zhè)個圖片時(shí吃唱),采用“<img src=“8-23-sho了可wimg.php”>”的方式。因爲驗證碼圖片本身是一張圖片,所以舊畫使用<img>标簽來引用。而這(z下長hè)張圖片又是用PHP程序生成(chéng)的,因此直謝不接用“src= 8-23-showimg廠又.php”來調用。運行結果如圖8-23所示。

8-23.jpg

圖8-23  程序8-23-login.html哥歌的運行結果

    &nb鐘科sp;     跳如;  1:  <?php

     &nb費站sp;    &nb那關sp; 2:   答亮  //驗證用戶輸入的驗證碼是否正确

    生畫;     &nbs玩一p;  3:      農頻;session_start();

   &nb體腦sp;    &nb女朋sp;   4:      $pas嗎務scode=$_SESSION["上拿Checknum"];

    &n裡能bsp;   &nbs票得p;   5:   少錢   $usercode=$_POST[&qu個習ot;passcode"];

     離話;      &拿錯nbsp;6:       音懂if($passcode == $userc長我ode){

  &nb行著sp;      線林   7:     &n我務bsp;  路紙; echo "驗證碼答知正确!驗證通過(guò)!";

     &下可nbsp;   不慢   8:      }els冷花e{

    &n可要bsp;   &n靜國bsp;  線身; 9:     &n間慢bsp;  數你; echo "驗證碼輸入錯誤!驗證失敗!";唱電

   &nbs店站p;  &nbs近讀p;    &nbs姐照p;10:     }

   劇短;   用就;  &nbs舊答p;   11: ?>

     &n間光bsp;  &路在nbsp;   劇長程序第3行是將(jiāng)session中存儲的唱化正确的驗證碼讀取出來。第4行將(jiāng)用戶輸分什入的驗證碼接收過(guò)來。然後(hòu)進(jì明慢n)行比較,如果相等,則說(s友車huō)明用戶輸入的驗證碼正确,否則不正确。

 

      車對      8.3.6.4  圖片水印制作  少跳  &nb冷志sp;  &nbs如上p;

   &nbs林算p;    裡微;   錯熱;   &nbs河行p;    &nb有大sp;  &nbs他音p;      &答厭nbsp;    &nb機朋sp;      計業;    

   少靜      &nb在草sp;  不僅可以直接創建一個圖像流來繪制圖形,還(hái)可服明以將(jiāng)一張已有的圖去話片作爲圖像流讀入,然後(hòu區知)在此基礎上對(duì)圖像進(jì美服n)行處理。這(zhè)一功能(nén議日g)常用來制作圖像水印。所謂圖像水印,就(jiù)是在圖像上标上一制熱些特殊的圖形或符号,用來作爲圖像所有者的标志或者防止山冷圖片被(bèi)盜用。下面(miàn)我們就(jiù)看一個這(zhè)店明樣(yàng)的例子。

   務個  &nb會關sp;  &n看電bsp;   本例使用了一張原始圖片pic.jpg,現在用PH服音P將(jiāng)此圖片進(jìn)行處理,在圖片表面(m相音iàn)按一定規律加上文字标簽,産生水印效果靜跳,使之不能(néng)被(bèi)直接盜用。

      &廠個nbsp;    &nbs姐快p;1:  <?php

     街了;      &做影nbsp;2:    舞山  //文件8-24.php:爲圖片商器加水印

   &nbs間鐘p;      錯讀  3:   &鐵習nbsp;   header(&quo友做t;Content-type: ima女照ge/jpeg");

   鄉拿;  &nb鄉電sp;    服作;  4:      地但 $im = imagecreat但兵efromjpeg("pic.jpg");

     友會     &nb火化sp; 5:   &n生時bsp;   $white 到用= imagecoloralloca子新te($im,255,255,文新255);

   有風;    &nbs醫大p;    6:    &n少上bsp;  $width=imagesx($im);

     &業體nbsp;    書師;  7:    &nbs拿學p; $height=imagesy($im);

      明雜;      到訊8:      話地;$x=0;

     &nb鐘樂sp;    &她友nbsp; 9:      $要歌y=0;

      &nb錢會sp;     放樂10:     whi費市le($x<$width && $y<$he技關ight){

   &nb討明sp;   作日;     11:      &n木刀bsp;     &nbs用畫p;imagestring($im,2, $x,$y,"https:制文//www.xxx.com&qu科是ot;, $white);

      動在    厭在  12:   道門    志為   &n微坐bsp;  $x =20;

    公喝      &nb舞南sp; 13:     舊用     舊林;   $y =20;

   &n數上bsp;    熱下   章吃; 14:     }

     &nbs報湖p;      懂腦;15:  姐話   imagejpeg($im);

     人來    綠就   16:     imagedestro白日y($im);

   &n車畫bsp;     &n畫都bsp;  17: ?>

   &nbs讀大p;   農明;     本程序第3行設定本頁面(miàn)輸出類型爲jpeg圖像。

     &nbs就動p;    &nbs但樂p; 第4行用imagecreateformjpeg()函數打開(kāi北村)了一張圖片pic.jpg,并返家南回此圖片的數據流。

      &nb動師sp;    好工; 第5行定義了一個顔色(白色)。

     &nbs得我p;   熱愛;   第6~7行用imagesx()和imag也東esy()函數取得圖片pic.jpg的原始尺寸。

     &nbs黑數p;  &nbs風器p;   第8~9行定義了用于控制文字添加位置的兩(liǎng)個白刀變量。

     &nbs友做p;     &弟這nbsp;第10~14行用循環向(xià國中ng)圖片中添加多行文字,用$x和$y兩(liǎng)個變量控分東制位置和循環次數。

    和信;    鐘國    第15行輸出此圖片,第16行銷毀數據流城話。

     湖亮  &nb有務sp;   在吧; 程序運行前和運行後(hòu)的圖像分雪間别如圖8-24和圖8-25所示。

     &少醫nbsp;  話音    

8-24.jpg


圖8-24  原始圖片

   

8-225.jpg

圖8-25  程序8-24.php的運行結會你果

 

   自空   &體村nbsp;  &nb樹玩sp;  可以看到,處理的後(hòu)的圖片上加入了文字标記,這(zhè高拍)就(jiù)基本達到了處理意圖。但是同時(shí)也可以看出,處弟低理後(hòu)的圖片由于文字的加入影響了裡木圖像的觀賞性。因此水印如何加,加在什麼(m上什e)位置,即能(néng)起(qǐ)到水印的作用,又不嚴重影員務響美觀,才是在處理中最應考慮的。

      &雪輛nbsp;  司舊   文城;PHP的圖像處理函數就(jiù)介紹這(zhè)些,希兵電望讀者對(duì)此有一個基本的了解,爲以後(hòu)深入學(xu道他é)習打下基礎。

 


  • 徐新如 2018-01-09 16:14:57
    php提供了豐富的圖像處理函數,主要包來跳括如下幾種(zhǒng): ①獲銀兵取圖像信息的函數 ②創建與銷毀圖像的函數 ③載入圖像的函數 理光④輸出圖像的函數 ⑤分配/取消圖像顔色的函數秒吃 ⑥拷貝圖像的函數 ⑦合并圖像的函數 ⑧繪制線段與圓子章弧的函數 ⑨圖像填充函數
  • 甄丹丹 2018-01-09 16:17:35
    PHP提供了一系列函數來實現在話校網站編程中對(duì)圖像進(jìn)行編輯,其中最爲典型的應用有随刀山機圖形驗證碼、圖片水印、數據統計中餅狀圖、畫喝柱狀圖的生成(chéng)等。
  • 班榮芳 2018-01-10 12:08:00
    php提供了豐富的圖像處理函數