GD::SecurityImage
Perl:画像関連
概要
GD::SecurityImage は、いわゆる CAPTCHA 認証画像を作成するための Perl モジュールです。
インストール
GD::SecurityImage は GD が必要なので、まず GD をインストールしておきます。
また、必須ではないのですが、Image::Magick を使うことを推奨されています。
GD::SecurityImage 自体は CPAN から取得でき、通常の CPAN モジュールと同様にインストールできます。
拡張版?
http://www.drk7.jp/MT/archives/001364.html に一部機能を拡張したものがあります。
さらに自由度の高い画像が作れますので、おすすめです。
使用方法
簡単な流れは以下の通りです。
use GD::SecurityImage; ... my $image = GD::SecurityImage->new(%config); $image->random($string); $image->create('ttf', $style, $textcolor, $linecolor); $image->particle($density, $maxdots); my($image_data, $mime_type, $random_number) = $image->out;
まず、new でインスタンスを作成します。
この際に、キャプチャ画像を作成する上での様々な設定を指定することが出来ます。
項目 | 概要 |
---|---|
width | 画像の横幅 |
height | 画像の高さ |
lines | 画像内に描画する線(スタイルによって異なる)の数 |
scramble | 文字列を回転させるか否か |
angle | 文字列の角度 |
ptsize | フォントサイズ |
ptrange | フォントサイズのランダム幅(拡張機能) |
thickness | 線の幅 |
rnd_data | 文字列をランダム生成する際に使用する文字群 |
font | フォント。trueタイプフォントのみ使える模様 |
gd_font | normal タイプで使用可能?Small / Large / Medium-Bold / Tiny / Giant から選択可能 |
rndmax | 文字列の最小文字数。デフォルトは 6。 |
bgcolor | 背景色 |
random で文字列を指定します。
ここで文字列を指定しないと、ランダムに生成されます。
create でキャプチャ画像を作成します。
第一引数で、ttf / normal を指定可能で、ここで ttf を指定すると true タイプフォントがフォントとして使用できます。
第二引数で、スタイルを指定します。
スタイルは default / rect / box / circle / ellipse / ec / blank / line(拡張版)から指定可能です。
第三引数でテキストの色を、第四引数で線の色を指定できます。
次にこれは必要であればですが、particle で点を描画することが出来ます。
第一引数で点の数を、第二引数で隣接する点?の数を指定することが出来ます。
最後に out で画像情報を取得できます。
前から順に、画像データ、MIME タイプ、キャプチャ画像に描画されている文字列となります。
おまけ
設定パラメータ確認用の CAPTCHA CGI を作成しました。