Image::Magickで画像を重ね合わせる
何に使うのやら。
giflib-devel とかのライブラリを入れておくのも忘れずに。
#各インスタンス生成 my ($img_down, $img_up_jpg, $img_up_gif) = (Image::Magick->new, Image::Magick->new, Image::Magick->new); $img_down->Read("path/to/down_image"); $img_up_jpg->Read("path/to/up_image_jpg"); $img_up_gif->Read("path/to/up_image_gif"); #リサイズしたければすればいい $img_down->Resize(width => $resize_width, height => $resize_height); #サイズでも計ろうか my ($w1, $h1) = Image::Size::imgsize("path/to/down_image"); #背景に枠を付けたければ付ければいい $img_down->Border( color => "#123", width => $border_size, height => $border_size, ); if ($cond) { #何となくgifの気分の場合 $img_down->Composite(image => $img_up_gif, compose => 'Multiply', x => 0, y => 0); } else { #何となくjpgの気分の場合 $img_down->Composite(image => $img_up_jpg, compose => 'Dissolve', x => 0, y => 0); } #出力して終わり $img_down->Write("/tmp/result.$ext");
Image::Magickはやれる事が多いのはいいのだけど如何せん疲れる。
例えば Composite の引数に (gravity => "Center") とか追加すると中央に重ねられる、とか。
頑張って読む or 適当に試して天に祈る、お好きな方でどうぞ → http://www.imagemagick.org/script/perl-magick.php