首頁 >後端開發 >php教程 >PHP 使用GD庫產生驗證碼 在影像上繪製漢字

PHP 使用GD庫產生驗證碼 在影像上繪製漢字

WBOY
WBOY原創
2016-08-08 09:20:541207瀏覽

      PHP 並不僅限於創建 HTML 輸出, 它也可以創建和處理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在內的多種格式的圖像。 更方便的是,PHP 可以直接將影像資料流輸出到瀏覽器。 要想在 PHP 中使用影像處理功能,你需要連帶 GD 函式庫一起來編譯 PHP。 GD 函式庫和 PHP 可能需要其他的函式庫, 這取決於你要處理​​的影像格式。 你可以使用 PHP 中的影像函數來取得下列格式影像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000。如果聯合 exif 擴充 一起使用, 你可以操作儲存在 JPEG 和 TIFF 影像檔案頭部的信息, 這樣就可以取得數位相機所產生的元資料。 exif 相關的函數不需要 GD 函式庫亦可使用。

      可以使用phpinfo.php,取得GD庫的安裝設定資訊:


格式
支援讀取

支援寫入備註

TRUETRUETRUEPHP 4.0.1 開始支援讀取,PHP 5.0.0 開始支援寫入PHP 4.0.1 開始支援讀取。 Windows 平台上無法使用。需要PHP 結合的GD 庫
JPEG
TRUE TRUE  
GIF TRUE TRUE GD 1.6 和GD 2.0.28 TRUE
XPM TRUE FALSE
WBMP TRUE TRUE
TRUE GD 2.1+, PHP 5.5 + <br><p><span><span>GD和影像處理函數</span><br></span></p> <p><span>?gd_info — 取得目前安裝的GD 函式庫的資訊<br>?getimagesize — 取得圖片大小<br>?getimagesizefromstring — 從字串中取得圖片尺寸資訊<br>?image_type_to_extension — 取得圖片類型的檔案後綴編號,exif_t​​humbnail,exif_imagetype 所傳回的映像類型的MIME 類型<br>?image2wbmp — 以WBMP 格式將映像輸出到瀏覽器或檔案<br>?imageaffine — 傳回經過仿射變換後的映像,剪切區域可選<br>?imageaffinemaconcat? two matrices (as in doing many ops in one go)<br>?imageaffinematrixget — Return an image containing the affine tramsformed src image, using an optional clipping area<br>?imagealphablen; antialias)功能<br>?imagearc — 畫橢圓弧<br>?imagechar — 水平地畫一個字符<br>?imagecharup — 垂直地畫一個字符<br>?imagecolorallocate — 為一幅圖像分配顏色<br>?imagecolorallocatealpha — 為一幅圖像分配顏色+ <br>?imagecolorat — 取得某像素的顏色索引值<br>?imagecolorclosest — 取得與指定的顏色最接近的顏色的索引值<br>?imagecolorclosestalpha — 取得與指定的顏色加透明度最接近的顏色<br>?imagecolorclosesthwb — 取得與給定hw顏色最接近的色度的黑白色的索引<br>?imagecolordeallocate — 取消圖像顏色的分配<br>?imagecolorexact — 取得指定顏色的索引值<br>?imagecolorexactalpha — 取得指定的顏色加透明度的索引值<br>?imagecolormatch — 使一個圖像中調色板版本的顏色與真彩色版本更能匹配<br>?imagecolorresolve — 取得指定顏色的索引值或有可能得到的最接近的替代值<br>?imagecolorresolvealpha — 取得指定顏色+ alpha 的索引值或有可能得到的最接近的替代值<br>?imagecolorset — 給指定調色板索引設定顏色<br>?imagecolorsforindex — 取得某索引的顏色<br>?imagecolorstotal — 取得一幅圖像的調色盤中顏色的數目<br>?imagecolortransparent — 將某一圖像的調色盤中顏色的數目<br>?imagecolortransparent?imagecolor個顏色定義為透明色<br>?imageconvolution — 用係數div 和offset 申請一個3x3 的捲積矩陣<br>?imagecopy — 拷貝圖像的一部分<br>?imagecopymerge — 拷貝並合併圖像的一部分<br>?imagecopymergegray — 用灰度拷貝圖像的一部分<br>?imagecopyresampled — 重採樣拷貝部分圖像並調整大小<br>?imagecopyresized — 拷貝部分圖像並調整大小<br>?imagecreate — 新建一個基於調色板的圖像<br>CGDimagecreatefromgd2 — 從一開始圖片?imagecreatefromgd2part — 從給定的GD2 檔案或URL 中的部分新建一映像<br>?imagecreatefromgd — 從GD 檔案或URL 新建一映像<br>?imagecreatefromgif — 由檔案或URL 建立一個新圖象。 <br>?imagecreatefromjpeg — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatefrompng — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatefromstring — 從字串中的映像流新建一映像<br>?imagecreatefromwbmp — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatefromwebp — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatefromxbm — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatefromxpm — 由檔案或 URL 建立一個新圖象。 <br>?imagecreatetruecolor — 新建一個真彩色圖像<br>?imagecrop — Crop an image using the given coordinates and size, x, y, width and height<br>?imagecropauto — Crop an image automatically ing able<br>?imagecropauto — Crop an image automatically ing abled虛線<br>?imagedestroy — 銷毀一圖像<br>?imageellipse — 畫一個橢圓形<br>?imagefill — 區域填入<br>?imagefilledarc — 畫一橢圓弧且填入<br>?imagefilledellipse — 畫一橢圓形並填滿一橢圓形並填滿一橢圓形畫?imagefilledrectangle — 畫一個矩形並填入<br>?imagefilltoborder — 區域填入指定顏色的邊界為止<br>?imagefilter — 對圖像使用過濾器<br>?imageflip — Flips an image using a given mode<br>?imageflip — Flips an image using a given mode<br>?imageflip — 取字體尺寸— 取得字體寬度<br>?imageftbbox — 給出一個使用FreeType 2 字體的文字方塊<br>?imagefttext — 使用FreeType 2 字體將文字寫入圖像<br>?imagegammacorrect — 對GD 圖像應用gamma 修正<br>?imagegd2 — 將GDagegd2 — 將圖片輸出到瀏覽器或檔案<br>?imagegd — 將GD 影像輸出到瀏覽器或檔案<br>?imagegif — 輸出圖像到瀏覽器或檔案。 <br>?imagegrabscreen — Captures the whole screen<br>?imagegrabwindow — Captures a window<br>?imageinterlace — 啟動或禁止隔行掃描<br>?imageistruecolor — 檢查圖片是否為真假圖片<br>?imagejpeg — 輸出。<br>?imagelayereffect — 設定alpha 混色標誌以使用綁定的libgd 分層效果<br>?imageline — 畫一條線段<br>?imageloadfont — 載入一新字體<br>?imagepalettecopy — 將調色盤從一幅圖像拷貝到另一幅圖片拷貝到另一幅圖片拷貝到另一幅圖片幅<br>?imagepalettetotruecolor — Converts a palette based image to true color<br>?imagepng — 以PNG 格式將圖片輸出到瀏覽器或檔案<br>?imagepolygon — 畫一個多邊形<br>?imagepsbbox 給出一個使用PostScriptbox 的文字方框<br>?imagepsencodefont — 改變字體中的字元編碼向量<br>?imagepsextendfont — 擴充或精簡字體<br>?imagepsfreefont — 釋放一個PostScript Type 1 字型所佔用的記憶體<br>?imagepsloadfont — 從檔案載入一個字型傾斜某字體<br>?imagepstext — 用PostScript Type1 字體把文字字串畫在圖片上<br>?imagerectangle — 畫一個矩形<br>?imagerotate — 用給定角度旋轉圖像<br>?imagesavealpha — 設定標記以在儲存PNG 圖像時保存完整PNG 圖像時保存完整PNG 圖像時保存完整PNG 圖像時保存完整PNG 圖像時保存完整個圖像。的alpha 通道資訊(與單一透明色相反)<br>?imagescale — Scale an image using the given new width and height<br>?imagesetbrush — 設定畫線用的畫筆圖像<br>?imagesetinterpolation — Set the interpolation method the interpolation method一個單一像素<br>?imagesetstyle — 設定畫線的風格<br>?imagesetthickness — 設定畫線的寬度<br>?imagesettile — 設定用於填充的貼圖<br>?imagestring — 水平地畫一行字符串<br>?imagestringup — 垂直地畫一行字串<br>?imagesx — 取得圖像寬度<br>?imagesy — 取得圖像高度<br>?imagetruecolortopalette — 將真彩色圖像轉換為調色板圖像<br>?imagettfbbox — 取得使用TrueType 字體的文本的範圍<br>?字體向圖像寫入文字<br>?imagetypes — 傳回目前PHP 版本所支援的圖像類型<br>?imagewbmp — 以WBMP 格式將圖像輸出到瀏覽器或檔案<br>?imagewebp — 將WebP 格式的圖像輸出到瀏覽器或檔案<br> ?imagexbm — 將XBM 映像輸出到瀏覽器或檔案<br>?iptcembed — 將二進位IPTC 資料嵌入到一幅JPEG 影像中<br>?iptcparse — 將二進位IPTC 區塊解析為單一標記<br>?jpeg2wbmp — 將二進位IPTC 區塊解析為單一標籤<br>?jpeg2wbmp — 將二進位IPTC 區塊解析為單一訊號檔案轉換為MP影像檔案<br>?png2wbmp — 將PNG 影像檔案轉換為WBMP 影像檔案<br><br></span></p> <p>      <span>在Linux與Windows系統下都可以使用GD函式庫,函數也完全一致,但圖形座標會發生變化。如果系統相互移植,必須重新檢視介面。 <span></span></span></p> <p>在影像上繪製中文<span></span></p> <p><span><pre name="code">&lt;?php // 定义输出为图像类型 header(&quot;content-type:image/gif&quot;); // 创建画布 $im = imagecreate(400, 200); // 背景 imagecolorallocate($im, 225, 66, 255); // 文本颜色 $text_color = imagecolorallocate($im, 233, 14, 91); $motto = &quot;Test String 长白山&quot;; //imagestring 默认英文编码,只支持UTF-8 //imagestring($im, 2, 0, 0, $motto, $text_color); //当代码文件为: //ANSI编码,需要转换 //UTF-8编码,不需要转换 //$motto = iconv(&quot;gb2312&quot;, &quot;utf-8&quot;, $motto); imageTTFText($im, 20, 0, 0, 100, $text_color, &quot;c:/windows/fonts/simhei.ttf&quot;, $motto); imagegif($im); imagedestroy($im); ?&gt;</pre></span><img src="http://image.codes51.com/Article/image/20150717/20150717095129_3834.jpg" alt=""><br></p> <p>生成驗證碼<span></span></p> <p><span></span>郎涯工作室原創文章,未經博主允許不得轉載。 <img src="http://image.codes51.com/Article/image/20150717/20150717095129_7897.jpg" alt=""><br> </p> 以上就介紹了PHP 使用GD庫產生驗證碼 在影像上繪製漢字,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 <div> <p> </p> </div>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn