Exifの位置情報を取り出す

iPhoneを使ってるのですが、GPSが付いてるので、
写真を撮るときに位置情報を入れることが出来ます。

まずは、位置情報を有効にして、写真を撮りましょう。
ですが、ここで大事なお知らせ。

位置情報が入った写真が他人の手に渡ると、
その写真を撮った場所が特定されてしまいます。

という訳で、特定されたくない場合は、
位置情報を無効にしておきましょう。

まずは、お手元のPCに写真を取り込みます。
次に、画像ファイルに格納されているExif(Exchangeable Image File)を解析して、
位置情報を取り出します。
Exifを解析するには、IFD(Image File Directory)を見つけて・・・。

perlはインストールしてありますか!?
cpanmの準備はいいですか!?

> cpanm Image::ExifTool

これで、準備は完了です。

次は、perlスクリプトを書きましょう。

use warnings;
use strict;
use Image::ExifTool;

my $path = $ARGV[0];
my $info = Image::ExifTool::ImageInfo( $path );
if ( exists $info->{GPSPosition} ) {
	printf "$info->{GPSPosition}\n";
}
else {
	print "GPSPosition not found.\n";
}

これを、”exif.pl”で保存。これだけ!

次は、引数に画像ファイルのパスを指定してスクリプトを実行!

> perl exif.pl IMG_0123.JPG
43 deg 4' 0.60" N, 141 deg 21' 4.20" E

さて、ここはどこでしょう?

こんな感じの内容を、Hokkaido.pm#4でお話します。
おしまい。

2011/2/19 追記
ちなみに、capnを使う場合は、

> cpan install Image::ExifTool(charsbarさん、ご指摘ありがとうございます!)
> cpan Image::ExifTool

Leave a Comment