ホームページ  >  記事  >  php教程  >  画像検証コードを生成するための PHP グラフィックス操作

画像検証コードを生成するための PHP グラフィックス操作

WBOY
WBOYオリジナル
2016-10-20 10:09:131484ブラウズ

単純な検証コードは、実際には画像内のいくつかの文字を出力しています。これは、imagestring 関数を通じて実現できます。

ただし、処理の面では、検証コードをより安全にし、他のプログラムが自動的に認識するのを防ぐために、検証コードに何らかの干渉処理を実行する必要があることがよくあります。通常、いくつかのノイズ点、つまり干渉線が描画されます。セグメントが描画され、出力された文字が傾いて歪んで動作します。

imagesetpixel を使用して点を描画してノイズ干渉を実現することもできますが、1 つの点だけを描画してもあまり役に立たないため、ループを使用してランダムに描画することがよくあります。

リーリー

$img = imagecreatetruecolor(100, 40);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$ white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img,0,0,$white);
//ランダムな検証コードを生成します
$code = '';
for($i = 0 ; $i $code .= rand(0, 9);
}
imagestring($img, 5, 10, 10, $code, $black ) ;
//ノイズ干渉を追加
for($i=0;$i
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $ black); //imagesetpixel — 単一ピクセルを描画します。構文: bool imagesetpixel ( resource $image , int $x , int $y , int $color )
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
//検証コードを出力
header("content-type: image/png");
imagepng($img); //PNG形式で出力します画像をブラウザまたはファイルに送信します
imagedestroy($img); //画像処理が完了したら、imagedestroy() 命令を使用して画像リソースを破棄し、メモリを解放します。これを使って。

?>

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