jhead はデジカメなどで撮影した画像などに含まれる EXIF 情報を表示してくれるコマンド。debian 系 OS でのインストールは以下のようにする。数百キロバイト程度なのですぐ終わる。
$ sudo aptitude install jhead
使い方はとても簡単。下記のようにファイルを指定するだけだ。
$ jhead DSC01977.JPG File name : DSC01977.JPG File size : 4653056 bytes File date : 2010:10:27 10:58:31 Camera make : SONY Camera model : DSLR-A330 Date/Time : 2010:10:16 17:25:25 Resolution : 3872 x 2592 Flash used : No Focal length : 18.0mm (35mm equivalent: 27mm) Exposure time: 0.0080 s (1/125) Aperture : f/10.0 ISO equiv. : 100 Whitebalance : Auto Metering Mode: matrix Exposure : program (auto)
はてなフォトライフがなかなか残念な具合なので、ImageMagick の convert コマンドを使ってサムネイルでも吐かせ、EXIF 情報付きのギャラリーHTMLを吐かせようかと思った。しかし、便利なコトにサムネイル生成機能が jhead にも含まれていた。ものぐさなので、そのままこちらを使う。
# thumb ディレクトリに同名でサムネイルを吐く。 $ jhead -st "./thumb/&i" DSC01977.JPG
これらを踏まえ、以下のようなスクリプトを書いた。
#!/usr/bin/perl
$srcdir = "./src";
$thumbdir = "./thumb";
print "Content-type:text/html\n\n";
print '<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8">';
print <<EOT;
<table
align="center"
cellpadding="0"
cellspacing="5"
border="0"
style="font-size:9pt;
">
<tr>
EOT
$i = 0;
foreach $file (`ls $srcdir`) {
chomp($file);
@d = `jhead $srcdir/$file`;
$d[9] =~ s/time:/time :/gi;
foreach $line (@d) {
( $key, $val ) = split(/ +: +/, $line);
$dt{$key} = $val;
chomp($dt{$key});
}
$dt{"Focal length"} =~ s/ equivalent: (.+mm)/判換算で$1/gi;
$dt{"Exposure time"} =~ s/.*\((.*)\)/$1秒/gi;
unless ( -e "$thumbdir/$file" ) {
`jhead -st "$thumbdir/$file" $srcdir/$file`;
}
print " </tr>\n <tr>\n" unless ($i%2);
print <<EOT;
<td>
<a href="$srcdir/$file">
<img src="$thumbdir/$file" border="0" height="100%">
</a>
</td>
<td valign="center" style="border-bottom:1px;">
ファイル:$file ($dt{"File size"})<br>
画素数:$dt{Resolution}<br>
撮影日:$dt{"Date/Time"}<br>
カメラ:$dt{"Camera make"} $dt{"Camera model"}<br>
焦点距離:$dt{"Focal length"}<br>
シャッター速度:$dt{"Exposure time"} / 絞り値:$dt{"Aperture"}<br>
ISO 感度:$dt{"ISO equiv."} / ホワイトバランス:$dt{"Whitebalance"}<br>
</td>
EOT
$i++;
}
print " </tr>\n</table>\n";
exit;
$srcdir に画像ファイルを突っこんでおけば、サムネイルを生成して、当記事の小画像のようなギャラリーHTMLを吐く。セキュリティどころかページング機能、縦方向画像の回転など、ギャラリーに必要最低限のものすら付いてないけど気にしない。
ちなみにIS01の画面には、横スクロールせずにぴったり収まるレイアウト。
※ 2020/07/02 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。
