ImageMagick (PerlMagick)による色変換(透過付) - end0tknrのkipple - web写経開発
先日のentryに関連して、複数画像からアニメーションgifを生成。
#!/usr/local/bin/perl use strict; use File::Basename; use Image::Magick; use Data::Dumper; # refer to http://www.imagemagick.org/script/perl-magick.php main(@ARGV); sub main { my ( @org_img_files ) = @_; my $img_mgk = Image::Magick->new(); for my $org_img_file ( @org_img_files ){ print "ORG FILE : $org_img_file\n"; #http://www.imagemagick.org/script/perl-magick.php には #Read() の返り値は、読込だfile数とありますが、実際にはdie するみたい $img_mgk->ReadImage($org_img_file); #サイズ変更 resize / trim #width x height +offset +offset $img_mgk->Crop(geometry=>'240x240+80+80'); #色変換 (fill:塗り潰し色, fuzz:いい感じ具合) $img_mgk->Opaque(color=>'#ff0000', fill=>'#ff3300', fuzz=>'15%'); $img_mgk->Opaque(color=>'#ffffff', fill=>'#cccccc'); #透過 $img_mgk->Transparent(color=>'#000000'); my ($fn, $path, $ext) = fileparse($org_img_file, qw/.bmp .BMP/); my $new_img_path = join('',$path,$fn,'.gif'); #透過がある為,gif形式 } $img_mgk->Animate(delay=>20); # 1/100 sec $img_mgk->Write('new_anime.gif'); }