画像の加工

  必要なモジュール



GDモジュール

GDモジュールはJPEG・PNG形式などの画像を作成・加工できるようにするモジュールです。

マニュアルの日本語訳はこちらです(perldoc.jp)





  JPG 画像を出力



  
###############################################################
# girl.cgi
print "Content-type: image/JPEG\n";
print "\n";

#---------------------------------------------------
# 初期処理
#---------------------------------------------------
use GD;
binmode STDOUT;

#---------------------------------------------------
# 主処理
#---------------------------------------------------
$image = GD::Image->newFromJpeg("girl.jpg");

print $image->jpeg(100);

  

先頭行の「Content-type: image/JPEG」は、この CGI のブラウザに返すデータが「JPEGファイル」
である事を示しています。

「use GD;」はGDモジュールを使用する事の宣言です。

「binmode STDOUT;」は、print で出力するデータがバイナリである事を示します。

「$image = GD::Image->newFromJpeg("girl.jpg");」で、JPEGファイルからイメージを作成します。

「$image->jpeg(100);」は、クオリティ100% のJPEG ファイルイメージです。



  描画コマンドによる加工

GD モジュールには色々な描画コマンドがありますが、ここでは四角形の領域を塗りつぶす
「filledRectangle」を使用してみます。

構文は $image->filledRectangle($x1,$y1,$x2,$y2,$color) です

  
###############################################################
# girl2.cgi
print "Content-type: image/JPEG\n";
print "\n";

#---------------------------------------------------
# 初期処理
#---------------------------------------------------
use GD;
binmode STDOUT;

#---------------------------------------------------
# 主処理
#---------------------------------------------------
$image = GD::Image->newFromJpeg("girl.jpg");

$red = $image->colorResolve(255,0,0);
$image->filledRectangle(100,130,200,160,$red);

print $image->jpeg(100);

  



  加工した画像をファイルに出力

  
###############################################################
# girl3.cgi
print "Content-type: image/JPEG\n";
print "\n";

#---------------------------------------------------
# 初期処理
#---------------------------------------------------
use GD;

#---------------------------------------------------
# 主処理
#---------------------------------------------------
$image = GD::Image->newFromJpeg("girl.jpg");

$red = $image->colorResolve(255,0,0);
$image->filledRectangle(100,130,200,160,$red);

open( OUTFILE, ">", "girlout.jpg" );
binmode OUTFILE;
print OUTFILE $image->jpeg(100);
close( OUTFILE )

  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ