GD::SecurityImage

最終更新日時:2017-03-31 17:11:29
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_fontnormal タイプで使用可能?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 を作成しました。


お問い合わせは 掲示板 にて。