忍者ブログ

NOROMA CLUB -日記-

2018年01月14日 JpegAnalyzer Plusの有効期限切れと自作Exifツール

普段、デジカメ写真のExif確認には「JpegAnalyzer Plus」を使っていたのですが、
年明けぐらいからこんなポップアップが出てきて起動しなくなりました。

最終更新から10年ぐらい経っているようですし、
最新版を探そうにもサイトがすでに消えていたりで、お手上げのようです。

代わりに「Exif Reader」も入れてみましたが、個人的にはどうもしっくり来ず。
そこでふと、自分でも作れるんじゃないの、と思って調べてみたら、
案の定、CPANにライブラリが登録されていたので、Perlで簡単に作れそう。
ということで、個人的に使いやすいように作ってみました。

以下覚書です。
(事前にActivePerlがインストールされている前提です)

必要なライブラリのインストール。
C:\> cpan
cpan shellが起動する(一回目はインストール処理が走りました)
cpan> install Image::ExifTool

これでプログラム作成前の準備は完了。

Perlプログラム例。
#!/usr/bin/perl
use strict;
use Image::ExifTool;

my $InFile;
my $OutFile;
my $ExifTool;
my $ExifInfo;

my @kw;
my $i;

$i=0;
$kw[$i++]="CreateDate";
$kw[$i++]="Model";
$kw[$i++]="LensID";
$kw[$i++]="ISO";
$kw[$i++]="ShutterSpeed";
$kw[$i++]="FNumber";
$kw[$i++]="FocalLength";
$kw[$i++]="FocalLength35efl";

while($#ARGV>=0){
	$InFile = $ARGV[0];
	shift;
	my $OutFile = "${InFile}_exif.txt";

	$ExifTool = new Image::ExifTool;
	$ExifInfo = $ExifTool->ImageInfo($InFile);

	open(OUT,">$OutFile");

	for($i=0;$i<=$#kw;$i++){
		if(defined $$ExifInfo{$kw[$i]}){
			printf(OUT "%s: %s\n",$kw[$i],$$ExifInfo{$kw[$i]});
		}
		else {
			printf(OUT "%s: %s\n",$kw[$i],"-");
		}
	}

	printf(OUT "\n");
	printf(OUT "--------\n");
	foreach (sort keys %$ExifInfo) {
		printf(OUT "%s: %s\n",$_,$$ExifInfo{$_});
	}
	close(OUT);
	
}

実行例
C:\> perl exif.pl xxx.jpeg


xxx.jpeg_exif.txt というファイルにExif情報が落ちてきます。
$kw[$i++] で定義したもの(個人的によく参照するもの)が上の方に優先的に出力されて、
その後に全項目が出力される形式にしています。


追記
PerlスクリプトをコンパイルしたEXEファイル版も公開しました。
詳細はこちらのページへ。

拍手[3回]

PR