convertコマンド
ImageMagickのconvertコマンドをsystem関数でたたいてた古いプログラムを動かす必要があったのだが、そのためだけにImageMagickインストールするとか面倒すぎたので、perlでconvertコマンド的なものを書いてお茶を濁した。
ファイル形式の変換とリサイズしかできない。
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;
use Imager;
use Path::Class qw/file/;
GetOptions(
\my %options,
qw/geometry=s/,
);
my $in = file($ARGV[0]);
my $out = file($ARGV[1]);
my ($width, $height) = ($options{geometry} || '') =~ /(\d+)x(\d+)/;
# read
my $img = Imager->new;
$img->read( file => "$in" ) or die 'Cannot read: ', $img->errstr;
# scale if exists geometry option
if ($width and $height) {
$img = $img->scale( xpixels => $width, ypixels => $height, type => 'nonprop' );
}
# write
$img->write( file => $out ) or die 'Cannot write: ', $img->errstr;