ImageMagickTop / ImageMagick画像編集のいろいろがコマンドラインでできるアプリケーション + ライブラリ。 サムネイル生成for i in *.jpg do convert -quality 90 -resize 160x160 $i thumbnail/$i done 画像サイズは -resize で指定した大きさに収まるアスペクト比を維持したサイズ。 -thumnail というオプションもある。 画像のサイズ取得identify -ping hoge.jpg -pingを付けると早くなる。 HTML生成サムネイル→画像のリンクを生成。 #!/usr/bin/perl use strict; my @IMAGE_DIR = qw(day1 day2 day3); my @THUMB_DIR = qw(day1/thumbnail day2/thumbnail day3/thumbnail); foreach my $i (0..$#IMAGE_DIR) { opendir(TD, $THUMB_DIR[$i]) or die; my @files = sort grep {m/\.JPG$/i} readdir TD; foreach my $f (@files) { my $size = (split(/\s+/, `identify $THUMB_DIR[$i]/$f`))[2]; my ($width, $height) = split(/x/, $size); my $dest = $f; my $mov = $f; $mov =~ s/\.JPG$/.MOV/; $dest = $mov if (-f "$IMAGE_DIR[$i]/$mov"); print qq|<a href="$IMAGE_DIR[$i]/$dest"><img src="$THUMB_DIR[$i]/$f" width="$width"| . qq| height="$height" alt="" border="0" /></a><br />\n|; } close(TD); } PNG のガンマ値除去ハマることが多いのでいっそ消してしまおう、という試み。 一旦bmpに変換(いろいろ犠牲。 convert target.png tmp.bmp && convert tmp.bmp target.png ちなみに以下のコマンドは属性の変更ではなく画像の変更を行う。 convert -gamma 1.0 -set は属性の追加はできるが変更や削除はできない。 |