Let's write β

プログラミング中にできたことか、思ったこととか

PSPサイズに画像を変更するスクリプト

以前友人から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度回転して拡大(縮小)します。