PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程18GD庫圖像處理ppt課件_第1頁
PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程18GD庫圖像處理ppt課件_第2頁
PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程18GD庫圖像處理ppt課件_第3頁
PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程18GD庫圖像處理ppt課件_第4頁
PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程18GD庫圖像處理ppt課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、回想PHP中常見的錯(cuò)誤有哪三種?如何開啟文件方式的日志記錄,運(yùn)用哪個(gè)函數(shù)記 錄?什么是時(shí)間戳?相關(guān)函數(shù)都有哪些?預(yù)習(xí)檢查GD庫繪圖都需求哪幾步驟?如何創(chuàng)建一個(gè)畫布?如何輸出一個(gè)圖像?本章義務(wù)1. PHP中GD庫的運(yùn)用2. 驗(yàn)證碼的繪制和運(yùn)用3. PHP圖片處置縮放、裁剪、水印、旋轉(zhuǎn)和翻轉(zhuǎn)1. PHP中GD庫的運(yùn)用1.1 GD簡(jiǎn)介1.2 畫布管理1.3 設(shè)置顏色1.4 生成圖像1.5 繪制圖像1.6 在圖像中繪制文字1.1 GD簡(jiǎn)介PHP 不僅限于只產(chǎn)生 HTML 的輸出,還可以創(chuàng)建及操作多種不同格式的圖像文件。PHP提供了一些內(nèi)置的圖像信息函數(shù),也可以運(yùn)用GD函數(shù)庫創(chuàng)建新圖像或處置已有的圖像。

2、目前GD2庫支持GIF、JPEG、PNG和WBMP等格式。此外還支持一些FreeType、Type1等字體庫。JPEG 是一種緊縮規(guī)范的名字,通常是用來存儲(chǔ)照片或者存儲(chǔ)具有豐富顏色和顏色層次的圖像。這種格式運(yùn)用了有損緊縮。PNG 是可移植的網(wǎng)絡(luò)圖像,對(duì)圖像采用了無損緊縮規(guī)范。GIF 原義是“圖像互換格式,是一種基于LZW算法的延續(xù)顏色的無損緊縮格式 。GD庫圖像繪制的步驟在PHP中創(chuàng)建一個(gè)圖像應(yīng)該完成如下所示的4個(gè)步驟:1.創(chuàng)建一個(gè)背景圖像也叫畫布,以后的操作都基于此背景圖像。2.在背景上繪制圖像輪廓或輸入文本。3.輸出最終圖形4.釋放資源創(chuàng)建背景繪制圖像輸出圖形釋放資源?php /1. 創(chuàng)建

3、畫布 $im = imageCreateTrueColor(200, 200); /建立空白背景 $white = imageColorAllocate ($im, 255, 255, 255); /設(shè)置繪圖顏色 $blue = imageColorAllocate ($im, 0, 0, 64); /2. 開場(chǎng)繪畫 imageFill($im, 0, 0, $blue); /繪制背景 imageLine($im, 0, 0, 200, 200, $white); /畫線 imageString($im, 4, 50, 150, Sales, $white); /添加字串 /3. 輸出圖像 h

4、eader(Content-type: image/png); imagePng ($im); /以 PNG 格式將圖像輸出 /4. 釋放資源 imageDestroy($im); 1.2 畫布管理 imagecreate - 新建一個(gè)基于調(diào)色板的圖像 resource imagecreate ( int x_size, int y_size ) 本函數(shù)用來建立空新畫布,參數(shù)為圖片大小,單位為像素 (pixel)。支持256色。 imagecreatetruecolor - 新建一個(gè)真彩色圖像 resource imagecreatetruecolor ( int x_size, int y_

5、size ) 新建一個(gè)真彩色圖像畫布 ,需求 GD 2.0.1 或更高版本,不能用于 GIF 文件格式。 imagedestroy - 銷毀一圖像 bool imagedestroy ( resource image ) imagedestroy() 釋放與 image 關(guān)聯(lián)的內(nèi)存。1.3 設(shè)置顏色 imagecolorallocate - 為一幅圖像分配顏色 語法:int imagecolorallocate ( resource image, int red, int green, int blue ) imagecolorallocate() 前往一個(gè)標(biāo)識(shí)符,代表了由給定的 RGB 成分

6、組成的顏色。red,green 和 blue 分別是所需求的顏色的紅,綠,藍(lán)成分。這些參數(shù)是 0 到 255 的整數(shù)或者十六進(jìn)制的 0 x00 到 0 xFF。imagecolorallocate() 必需被調(diào)用以創(chuàng)建每一種用在 image 所代表的圖像中的顏色。$im = imagecreatetruecolor(100, 100); /創(chuàng)建畫布的大小為100 x100$red = imagecolorallocate($im,255,0,0); /由十進(jìn)制整數(shù)設(shè)置一個(gè)顏色$white = imagecolorallocate($im, 0 xFF, 0 xFF, 0 xFF);/ 十六進(jìn)制

7、方式1.4 生成圖片 imagegif - 以 GIF 格式將圖像輸出到閱讀器或文件 語法:bool imagegif (resource image ,string filename ) imagejpeg - 以 JPEG 格式將圖像輸出到閱讀器或文件 語法:bool imagejpeg (resource image ,string filename , int quality ) imagepng - 以 PNG 格式將圖像輸出到閱讀器或文件 語法:bool imagepng (resource image ,string filename ) imagewbmp - 以 WBMP 格

8、式將圖像輸出到閱讀器或文件 語法:bool imagewbmp (resource image , string filename , int foreground ) 1.5 繪制圖像 imagefill - 區(qū)域填充 語法:bool imagefill(resource image,int x,int y, int color) imagefill() 在 image 圖像的坐標(biāo) x,y圖像左上角為 0, 0處用 color 顏色執(zhí)行區(qū)域填充即與 x, y 點(diǎn)顏色一樣且相鄰的點(diǎn)都會(huì)被填充。 imagesetpixel - 畫一個(gè)單一像素 語法:bool imagesetpixel ( re

9、source image, int x, int y, int color ) imagesetpixel() 在 image 圖像中用 color 顏色在 x,y 坐標(biāo)圖像左上角為 0,0上畫一個(gè)點(diǎn)。 imageline - 畫一條線段 語法:bool imageline ( resource image, int x1, int y1, int x2, int y2, int color ) imageline() 用 color 顏色在圖像 image 中從坐標(biāo) x1,y1 到 x2,y2圖像左上角為 0, 0畫一條線段。 imagerectangle - 畫一個(gè)矩形 語法:bool i

10、magerectangle ( resource image, int x1, int y1, int x2, int y2, int col ) imagerectangle() 用 col 顏色在 image 圖像中畫一個(gè)矩形,其左上角坐標(biāo)為 x1, y1,右下角坐標(biāo)為 x2, y2。圖像的左上角坐標(biāo)為 0, 0。 imagefilledrectangle - 畫一矩形并填充 語法:bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color ) imagefilledrectan

11、gle() 在 image 圖像中畫一個(gè)用 color 顏色填充了的矩形,其左上角坐標(biāo)為 x1,y1,右下角坐標(biāo)為 x2,y2。0, 0 是圖像的最左上角。 imagepolygon - 畫一個(gè)多邊形 語法:bool imagepolygon ( resource image, array points, int num_points, int color ) imagepolygon() 在圖像中創(chuàng)建一個(gè)多邊形。points 是一個(gè) PHP 數(shù)組,包含了多邊形的各個(gè)頂點(diǎn)坐標(biāo),即 points0 = x0,points1 = y0,points2 = x1,points3 = y1,以此類推。

12、num_points 是頂點(diǎn)的總數(shù)。 imagefilledpolygon - 畫一多邊形并填充 語法:bool imagefilledpolygon ( resource image, array points, int num_points, int color ) imagefilledpolygon() 在 image 圖像中畫一個(gè)填充了的多邊形。points 參數(shù)是一個(gè)按順序包含有多邊形各頂點(diǎn)的 x 和 y 坐標(biāo)的數(shù)組。 num_points 參數(shù)是頂點(diǎn)的總數(shù),必需大于 3。 imageellipse - 畫一個(gè)橢圓 語法:bool imageellipse ( resource i

13、mage, int cx, int cy, int w, int h, int color ) imageellipse() 在 image 所代表的圖像中畫一個(gè)中心為 cx,cy圖像左上角為 0, 0的橢圓。w 和 h 分別指定了橢圓的寬度和高度,橢圓的顏色由 color 指定。 imagefilledellipse - 畫一橢圓并填充 語法:bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color ) imagefilledellipse() 在 image 所代表的圖像中以 cx,c

14、y圖像左上角為 0, 0為中心畫一個(gè)橢圓。w 和 h 分別指定了橢圓的寬和高。橢圓用 color 顏色填充。假設(shè)勝利那么前往 TRUE,失敗那么前往 FALSE。 imagearc - 畫橢圓弧 bool imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color ) imagearc() 以 cx,cy圖像左上角為 0, 0為中心在 image 所代表的圖像中畫一個(gè)橢圓弧。w 和 h 分別指定了橢圓的寬度和高度,起始和終了點(diǎn)以 s 和 e 參數(shù)以角度指定。0位于三點(diǎn)鐘位置,以順時(shí)針方向繪畫。

15、 imagefilledarc - 畫一橢圓弧且填充 bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style ) imagefilledarc() 在 image 所代表的圖像中以 cx,cy圖像左上角為 0, 0畫一橢圓弧。假設(shè)勝利那么前往 TRUE,失敗那么前往 FALSE。w 和 h 分別指定了橢圓的寬和高,s 和 e 參數(shù)以角度指定了起始和終了點(diǎn)。style 可以是以下值按位或OR后的值: IMG_ARC_PIEIMG_ARC_CHORD

16、 IMG_ARC_NOFILLIMG_ARC_EDGED1.6 在圖像中繪制文字 imagestring - 程度地畫一行字符串 語法:bool imagestring ( resource image, int font, int x, int y, string s, int col ) imagestring() 用 col 顏色將字符串 s 畫到 image 所代表的圖像的 x,y 坐標(biāo)處這是字符串左上角坐標(biāo),整幅圖像的左上角為 0,0。假設(shè) font 是 1,2,3,4 或 5,那么運(yùn)用內(nèi)置字體。 imagestringup - 垂直地畫一行字符串 語法:bool imagestri

17、ngup ( resource image, int font, int x, int y, string s, int col ) imagestring()用 col 顏色將字符串 s 垂直地畫到 image 所代表的圖像的 x, y 座標(biāo)處圖像的左上角為 0, 0。假設(shè) font 是 1,2,3,4 或 5,那么運(yùn)用內(nèi)置字體。 imagechar - 程度地畫一個(gè)字符 語法:bool imagechar ( resource image, int font, int x, int y, string c, int color ) imagechar() 將字符串 c 的第一個(gè)字符畫在 i

18、mage 指定的圖像中,其左上角位于 x,y圖像左上角為 0, 0,顏色為 color。假設(shè) font 是 1,2,3,4 或 5,那么運(yùn)用內(nèi)置的字體更大的數(shù)字對(duì)應(yīng)于更大的字體。 imagecharup - 垂直地畫一個(gè)字符 語法:bool imagecharup ( resource image, int font, int x, int y, string c, int color ) imagecharup() 將字符 c 垂直地畫在 image 指定的圖像上,位于 x,y圖像左上角為 0, 0,顏色為 color。假設(shè) font 為 1,2,3,4 或 5,那么運(yùn)用內(nèi)置的字體。 ima

19、gettftext - 用 TrueType 字體向圖像寫入文本 語法 :array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text ) ?php $im = imagecreatetruecolor(400, 30); /創(chuàng)建400 x300像素大小的畫布 $white = imagecolorallocate($im, 255, 255, 255); /創(chuàng)建白色 $grey = imagecolorallocate($i

20、m, 128, 128, 128); /創(chuàng)建灰色 $black = imagecolorallocate($im, 0, 0, 0); /創(chuàng)建黑色 imagefilledrectangle($im, 0, 0, 399, 29, $white); /運(yùn)用白色作為背景 /假設(shè)有中文輸出,需求將其轉(zhuǎn)碼,轉(zhuǎn)換為UTF-8的字符串才可以直接傳送 $text=iconv(GB2312, UTF-8, LAMP兄弟連無兄弟,不編程!); $font = simsun.ttc; /指定字體,將系統(tǒng)中對(duì)應(yīng)字體復(fù)制到當(dāng)前目錄下 imagettftext($im, 20, 0, 12, 21, $grey, $f

21、ont, $text); /輸出灰色字串作為陰影 imagettftext($im, 20, 0, 10, 20, $black, $font, $text); /輸出一個(gè)黑色的字符串 header(Content-type: image/png); /通知閱讀器將輸出格式為PNG的圖像 imagepng($im); /向閱讀器中輸出PNG格式的圖像 imagedestroy($im); /銷毀資源,釋放內(nèi)存占用的空間2. 驗(yàn)證碼的繪制和運(yùn)用 驗(yàn)證碼CAPTCHA是“Completely Automated Public Turing test to tell Computers and Hu

22、mans Apart全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試的縮寫,是一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序。 運(yùn)用驗(yàn)證碼的目的:可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個(gè)黑客對(duì)某一個(gè)特定注冊(cè)用戶用特定程序暴力破解方式進(jìn)展不斷的登陸嘗試。 驗(yàn)證碼是如今很多網(wǎng)站通行的方式比如招商銀行的網(wǎng)上個(gè)人銀行,百度社區(qū)。 驗(yàn)證碼的款式也是千奇百態(tài),本節(jié)重點(diǎn)講解運(yùn)用GD庫繪制圖像的方式。詳細(xì)實(shí)現(xiàn)步驟 設(shè)計(jì)驗(yàn)證碼的步驟 驗(yàn)證碼在表單中如何運(yùn)用3. PHP圖片處置 3.1 圖片背景管理 3.2 圖片縮放和裁剪 3.3 添加圖片水印 3.4 圖片旋轉(zhuǎn)和翻轉(zhuǎn)3.1 圖片背景管理 從指定的圖片文件或 URL地址來新

23、建一個(gè)圖像。勝利那么前往一個(gè)圖像標(biāo)識(shí)符,失敗時(shí)前往一個(gè)空字符串,并且輸出一條錯(cuò)誤信息。由于格式不同,那么需求分別運(yùn)用對(duì)應(yīng)圖片背景處置函數(shù)。 resource imagecreatefrompng ( string filename )從 PNG 文件或 URL 新建一圖像 resource imagecreatefromjpeg ( string filename ) 從 JPEG 文件或 URL 新建一圖像 resource imagecreatefromgif ( string filename 從 GIF 文件或 URL 新建一圖像 resource imagecreatefromwbm

24、p ( string filename )從 WBMP 文件或 URL 新建一圖像 其他圖像處置函數(shù): int imagesx ( resource image )獲得圖像寬度 int imagesy ( resource image ) 獲得圖像高度 array getimagesize ( string $filename , array &$imageinfo )獲得圖像大小、類型等信息3.2 圖片縮放和裁剪 bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x ,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論