ホームページ バックエンド開発 PHPチュートリアル PHP は GD ライブラリを使用して検証コードを生成し、画像上に漢字を描画します

PHP は GD ライブラリを使用して検証コードを生成し、画像上に漢字を描画します

Aug 08, 2016 am 09:20 AM
image php quot

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 がサポートする形式

jpegpngTRUE
フォーマット をサポート読み取り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
🎜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_t​​humbnail、 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教程有兴趣的朋友有所帮助。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles