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 ライブラリのインストール構成情報を取得できます:
GD がサポートする形式
フォーマット | をサポート読み取りesupportwriting | notes | |
---|---|---|---|
true true
|
gd1.8+TRUE
|
TRUE |
GD 1.8+ |
PNG | TRUE |
TRUE |
|
GIF | TRUE |
TRUE |
GD 1.6 和 GD 2.0.28 之间的版本不支持 |
XBM | TRUE |
TRUE |
PHP 4.0.1 开始支持读取,PHP 5.0.0 开始支持写入 |
XPM | TRUE |
FALSE |
PHP 4.0.1 开始支持读取。Windows 平台上不可用。需要 PHP 绑定的 GD 库 |
WBMP | TRUE |
TRUE |
GD 1.8+ |
WebP | TRUE |
TRUE |
png |
TRUE
🎜🎜🎜🎜🎜🎜GIF🎜🎜TRUE
🎜🎜TRUE
🎜🎜GD 1.6 および GD 2.0 .28 間のバージョンはサポートされていません🎜🎜🎜🎜 書き込み🎜🎜🎜🎜 Windows プラットフォームでは利用できません。 PHP バインディングを必要とする GD ライブラリ🎜🎜🎜🎜WBMP🎜🎜TRUE
🎜🎜TRUE
🎜🎜GD 1.8+🎜🎜🎜🎜WebP🎜🎜TRUE code >🎜🎜<code>TRUE
🎜🎜GD 2.1+、PHP 5.5+🎜🎜🎜🎜GDと画像処理機能
?gd_info — 現在インストールされている GD ライブラリに関する情報を取得します
?getimagesize — 画像サイズを取得します
?getimagesizefromstring — 文字列から画像サイズ情報を取得します
?image_type_to_extension — 画像タイプのファイル接尾辞を取得します
?image_type_to_mime_type — getimagesize を取得します、 exif_read_data 、 exif_thumbnail、 exif_imagetype 返される画像タイプの MIME タイプ
?image2wbmp — 画像をブラウザまたは WBMP 形式でファイルに出力します
?imageaffine — アフィン変換後の画像を、オプションのクリッピング領域を含めて返します
?imageaffinematrixconcat — 2 つの行列を連結します(一度に多くの操作を実行する場合と同様)
?imageaffinematrixget — オプションのクリッピング領域を使用して、アフィン変換された src 画像を含む画像を返します
?imagealphablending — 画像のブレンド モードを設定します
?imageantialias — アンチエイリアスを使用するかどうか( アンチエイリアス) 関数
?imagearc — 楕円弧を描画します
?imagechar — 文字を水平に描画します
?imagecharup — 文字を垂直に描画します
?imagecolorallocate — 画像に色を割り当てます
?imagecolorallocatealpha — 画像に色 + アルファを割り当てます
?imagecolorat — 特定のピクセルのカラー インデックス値を取得します
?imagecolorclosest — 指定した色に最も近い色のインデックス値を取得します
?imagecolorclosestalpha — 指定した色に最も近い色と透明度を取得します
?imagecolorclosesthwb — 指定された色を取得しますcolor 彩度に最も近い色の白黒インデックス
?imagecolordeallocate — 画像の色の割り当てをキャンセルします
?imagecolorexact — 指定した色のインデックス値を取得します
?imagecolorexactalpha — 指定した色に透明度を加えたインデックス値を取得します
?imagecolormatch — 画像を作成します 中間パレット バージョンの色がトゥルー カラー バージョンによりよく一致します
?imagecolorresolve — 指定された色のインデックス値または可能な限り最も近い代替値を取得します
?imagecolorresolvealpha — 指定された色のインデックス値を取得します +アルファまたは可能な値 最も近い置換値
?imagecolorset — 指定したパレット インデックスの色を設定します
?imagecolorsforindex — インデックスの色を取得します
?imagecolorstotal — 画像のパレット内の色の数を取得します
?imagecolortransparent — 変換特定の色を透明色として定義します
?imageconvolution — 係数 div と offset を使用して 3x3 の畳み込み行列を適用します
?imagecopy — 画像の一部をコピーします
?imagecopymerge — 画像の一部をコピーしてマージします
?imagecopymergegray —画像の一部をコピーしてグレースケールと結合する
?imagecopyresampled — 画像の一部をリサンプリングし、サイズを変更する
?imagecopyresize — 画像の一部をコピーし、サイズを変更する
?imagecreate — 新しいパレットベースの画像を作成する
?imagecreatefromgd2 — GD2 ファイルまたは URL から新しい画像を作成します
?imagecreatefromgd2part — 指定された GD2 ファイルまたは URL の一部から新しい画像を作成します
?imagecreatefromgd — GD ファイルまたは URL から新しい画像を作成します
?imagecreatefromgif — 新しい画像を作成しますファイルまたは URL から。
?imagecreatefromjpeg — ファイルまたは URL から新しい画像を作成します。
?imagecreatefrompng — ファイルまたは URL から新しい画像を作成します。
?imagecreatefromstring — 文字列内の画像ストリームから新しい画像を作成します。
?imagecreatefromwbmp — ファイルまたは URL から新しい画像を作成します。
?imagecreatefromwebp — ファイルまたは URL から新しい画像を作成します。
?imagecreatefromxbm — ファイルまたは URL から新しい画像を作成します。
?imagecreatefromxpm — ファイルまたは URL から新しい画像を作成します。
?imagecreatetruecolor — 新しいトゥルー カラー イメージを作成します
?imagecrop — 指定された座標とサイズ、x、y、幅、高さを使用して画像をトリミングします
?imagecropauto — 利用可能なモードの 1 つを使用して画像を自動的にトリミングします
?imagedashedline — 描画1 つの破線
?imagedestroy — 画像を破棄します
?imageellipse — 楕円を描画します
?imagefill — 領域を塗りつぶします
?imagefilledarc — 楕円の弧を描いて塗りつぶします
?imagefilledellipse — 楕円を描いて塗りつぶします
?imagefilledpolygon — を描画します多角形を描いて塗りつぶします
?imagefilledrectangle — 長方形を描いて塗りつぶします
?imagefilltoborder — 指定した色の境界線まで領域を塗りつぶします
?imagefilter — 画像にフィルタを適用します
?imageflip — 指定されたモードを使用して画像を反転します
?imagefontheight — フォントの高さを取得します
?imagefontwidth — フォントの幅を取得します
?imageftbbox — FreeType 2 フォントを使用してテキストボックスを作成します
?imagefttext — FreeType 2 フォントを使用して画像にテキストを書き込みます
?imagegammacorrect — ガンマ補正を適用しますGD 画像
?imagegd2 — GD2 画像をブラウザまたはファイルに出力します
?imagegd — GD 画像をブラウザまたはファイルにエクスポートします
?imagegif — 画像をブラウザまたはファイルにエクスポートします。
?imagegrabscreen — 画面全体をキャプチャします
?imagegrabwindow — ウィンドウをキャプチャします
?imageinterlace — インターレースを有効または無効にします
?imageistruecolor — 画像が True Color 画像であるかどうかを確認します
?imagejpeg — 画像をブラウザまたはファイルに出力します。
?imagelayereffect — 设定 alpha 混色标志以使用绑定的 libgd 分层效果
?imageline — 画一条线段
?imageloadfont — 载入一新字体
?imagepalettecopy — 将调色板从一幅图像拷贝到另一幅
?imagepalettetotruecolor — Converts a palette based image to true color
?imagepng — 以 PNG 格式将图像输出到浏览器或文件
?imagepolygon — 画一个多边形
?imagepsbbox — 给出一个使用 PostScript Type1 字体的文本方框
?imagepsencodefont — 改变字体中的字符编码矢量
?imagepsextendfont — 扩充或精简字体
?imagepsfreefont — 释放一个 PostScript Type 1 字体所占用的内存
?imagepsloadfont — 从文件中加载一个 PostScript Type 1 字体
?imagepsslantfont — 倾斜某字体
?imagepstext — 用 PostScript Type1 字体把文本字符串画在图像上
?imagerectangle — 画一个矩形
?imagerotate — 用给定角度旋转图像
?imagesavealpha — 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息(与单一透明色相反)
?imagescale — Scale an image using the given new width and height
?imagesetbrush — 设定画线用的画笔图像
?imagesetinterpolation — Set the interpolation method
?imagesetpixel — 画一个单一像素
?imagesetstyle — 设定画线的风格
?imagesetthickness — 设定画线的宽度
?imagesettile — 设定用于填充的贴图
?imagestring — 水平地画一行字符串
?imagestringup — 垂直地画一行字符串
?imagesx — 取得图像宽度
?imagesy — 取得图像高度
?imagetruecolortopalette — 将真彩色图像转换为调色板图像
?imagettfbbox — 取得使用 TrueType 字体的文本的范围
?imagettftext — 用 TrueType 字体向图像写入文本
?imagetypes — 返回当前 PHP 版本所支持的图像类型
?imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件
?imagewebp — 将 WebP 格式的图像输出到浏览器或文件
?imagexbm — 将 XBM 图像输出到浏览器或文件
?iptcembed — 将二进制 IPTC 数据嵌入到一幅 JPEG 图像中
?iptcparse — 将二进制 IPTC 块解析为单个标记
?jpeg2wbmp — 将 JPEG 图像文件转换为 WBMP 图像文件
?png2wbmp — 将 PNG 图像文件转换为 WBMP 图像文件
在Linux与Windows系统下都可以使用GD库,函数也是完全一致,但图形坐标会发生偏移。如果系统相互移植,必须重新查看界面。
在图像上绘制中文
<?php // 定义输出为图像类型 header("content-type:image/gif"); // 创建画布 $im = imagecreate(400, 200); // 背景 imagecolorallocate($im, 225, 66, 255); // 文本颜色 $text_color = imagecolorallocate($im, 233, 14, 91); $motto = "Test String 长白山"; //imagestring 默认英文编码,只支持UTF-8 //imagestring($im, 2, 0, 0, $motto, $text_color); //当代码文件为: //ANSI编码,需要转换 //UTF-8编码,不需要转换 //$motto = iconv("gb2312", "utf-8", $motto); imageTTFText($im, 20, 0, 0, 100, $text_color, "c:/windows/fonts/simhei.ttf", $motto); imagegif($im); imagedestroy($im); ?>
生成验证码
<?php session_start(); header("Content-type:image/png"); $imWidth = 70; $imHeight= 18; $im = imagecreate($imWidth, $imHeight); imagecolorallocate($im, 255, 255, 255); srand(microtime() * 100000); for($ix=0; $ix<4; $ix++) $number .= dechex(mt_rand(0, 15)); $_SESSION[check_check] = $number; for($ix=0; $ix<4; $ix++) { $x = $imWidth*$ix/ 4 + mt_rand(1, 8); $y = mt_rand(1, $imHeight / 4); $ft = mt_rand(3, 5); $cor = imagecolorallocate($im, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200)); imagestring($im, $ft, $x, $y, $_SESSION[check_check][$ix], $cor); } imagepng($im); imagedestroy($im); ?>
版权声明:本文为博主郎涯工作室原创文章,未经博主允许不得转载。
以上就介绍了PHP 使用GD库生成验证码 在图像上绘制汉字,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。