フリーで配布されているRPGツクール用画像素材の中には、改変してRPGツクール以外にも使用してよいというありがたい規約のものが存在する。
なのでさっそく素材として使おうとすると…背景が緑だかグレーだかの色で塗りつぶされていて透過になっていない!
おそらくこれがRPGツクール画像素材の規格なのだろうが、このままでは他のことに使いにくい。そのためこれを透過PNG画像に変換することを考える。
1個1コPhotoshopなどで加工してもよいが、なんとか楽をする方法を考えたい。
そういえば以前PerlのImagerをちょろっと勉強していたのを思い出し、それでなんとか自動化できないか、と考えた。
こんな感じで実現できた。
use Imager; local $inputdir = './in'; local $outputdir = './out'; my @filelist = &get_files("$inputdir/"); foreach(@filelist){ my @name = split(/\./,$_); my $in = Imager->new; $in->read( file => "$inputdir/$_") or die $imager->errstr."\n$inputdir/$_\n"; my $work = Imager->new(xsize => $in->getwidth, ysize => $in->getheight, channels => $in->getchannels); my @color = $in->getcolors(); $work->box(filled => 1, color => $color[0]); my $out = $work->difference(other => $in); $out->write( file => "$outputdir/$name[0].png")or die $out->errstr; }