GD庫引入與介紹
1)GD庫的概念:Graphic Device,圖像處理擴展(外部提供的API),能夠允許PHP在腳本中使用對應的函數(shù)來實現(xiàn)某些圖像制作功能。
2)GD庫的引入:已經(jīng)被集成到PHP擴展庫中,不需要下載,但是需要PHP在配置文件中開啟對應的擴展。GD擴展(GD2)

GD圖像處理基本技術
畫圖流程:畫圖本質是在內存開辟一塊很大的內存區(qū)域用于圖片制作
1、準備畫布
2、開始作畫
3、保存內容
4、銷毀畫布
創(chuàng)建畫布資源
1)ImageCreate(寬,高):創(chuàng)建一個空白畫布(背景色是白色的)
2)ImageCreateTrueColor(寬,高):創(chuàng)建一個真彩畫布(背景是黑色的,需要填充)

3)ImageCreatefromJpeg(圖片文件路徑):打開一個jpeg格式的圖片資源

4)ImageCreatefromGif(圖片文件路徑):打開一個gif(PHP中無法實現(xiàn)動態(tài))
5)ImageCreatefromPng(圖片文件路徑):打開一個png
操作畫布資源
說明:所有的畫布資源操作都是需要指定畫布資源,而且都是第一個參數(shù)
1)分配顏色:imagecolorallocate(畫布資源,紅色,綠色,藍色),根據(jù)RGB三色組給指定畫布分配一組顏色,會返回一個顏色句柄(一組整數(shù)),每一個色組都是0-255.

在真彩圖片資源中,所有分配的顏色都不回自動給圖片資源上色,是用來后續(xù)圖片資源的時候,指定著色的:但是如果當前使用的imagecreate創(chuàng)建的圖片資源,那么第一個分配的顏色,會自動被著色為圖片背景色。
注意:凡是給圖片上增加內容,基本都需要分配顏色(每一個操作圖片的函數(shù)之前,都需要先調用分配顏色的函數(shù)得到一個顏色)
2)填充區(qū)域:imagefill(畫布資源,起始x坐標,起始y坐標,顏色句柄):指定位置開始填充指定顏色(y是從上往下)

imagefill填充邏輯:從指定點開始,自動匹配相鄰點(就是墨水瓶)
3)畫直線:imageline(圖片資源,起始x,起始y,終點x,終點y,顏色句柄):制作一條直線

4)畫矩形:imagerectangle(圖片資源,起始x,起始y,終點x,終點y,顏色句柄):制作一個矩形

5)畫圓弧:imagearc(圖片資源,軸點x,軸點y,寬度,高度,弧度起點,弧度終點,顏色):制作弧度圖像

6)在畫布上寫字:imagestring(圖片資源,文字大小,起始x,起始y,內容,顏色):用來書寫ASCII對應的字符(英文)

imagettftext(圖片資源,文字大小,旋轉角度,起始x,起始y,顏色,字體,內容):可以書寫任意文字(中文) 字體要指定字體路徑(ttf文件:C:\Windows\Fonts)

filename要用絕對路徑。。不然一直找不到暈死。
輸出畫布資源
1)輸出為圖片文件:以圖片文件形式保存到本地


2)輸出位網(wǎng)頁圖片:將圖片展示給html(用戶):服務器需要稿紙當前內容是圖片(修改響應頭)

image+圖片格式
imagejpeg():保存成jpeg格式圖片
imagepng():保存成png
imagegif()……動不了的
如果圖片只是提供了圖片資源,不指定保存的文件位置,系統(tǒng)認為輸出給瀏覽器,反之保存到本地。
細節(jié)1:如果圖片輸出或者保存出錯,瀏覽器不會告知錯誤原因。。需要關閉header圖片輸出,才會告知


細節(jié)2:如果圖片輸出不成功,關閉header也看不到,最大可能是因為圖片輸出之前 輸出了別的額外內容(尤其是空格 空行)
銷毀畫布資源
從內存中將畫布資源清理掉,釋放內存
imagedestory(畫布資源)

獲取圖片信息
1)獲取畫布尺寸:imagesx(),imagesy()

2)獲取圖片尺寸:getimagesize()
