以前友人からPSPサイズに画像を変更できるようなツールなりをつくってくれといわれて、そんのときは他の友人がJavaでツールをつくってわたしていたのですが、Javaでなにやら面倒だったので、Imageクラスやらをさわっている友人の横で「ImageMagickつかえ」といっていたのですが、相手はwindows環境の人だそうでコマンドは嫌だといわれてしまいました。
僕はCUIの方が作業しやすいので、JavaなんかにたよらずPerlでやってしまおうとおもいImagerを利用してつくってみました 。
use strict; use warnings; use Imager; sub usage { print <<EOL; Usage: pspsizer {files} EOL } sub ImagePspSizer { my $file = shift; my $image = Imager->new(file => $file); if($image->getheight() > $image->getwidth()) { $image = $image->rotate(degrees => -90); } $image = $image->scale ( xpixels => 480, ypixels => 320, type => 'nonprop', ); $image->write(file => $file); } if(@ARGV == 0) { die usage(); } my @files = @ARGV; foreach my $file (@files) { die "$file do not exists $!\n" unless -f $file; } foreach my $file (@files) { ImagePspSizer($file); }
これで動作するはずです。縦長の画像は90度回転して拡大(縮小)します。