Exif情報の取得の仕方

CGIテクニック集トップへ





概要

Jpegファイル等のExif情報を取得し表示します。 Exifviewで使われています。

必用な処理

  1. PerlのPackage、Image::ExifToolを読み込む
  2. 画像ファイルをオープンしファイルハンドルを作成する
  3. Image::ExifToolのオブジェクトを作成し、画像ファイルのファイルハンドルからExif情報を取得する
  4. ファイルをクローズする
  5. 取得したExif情報を表示する

サンプルコード

 use Image::ExifTool;
 
 my $img;
 open ($img, "< file.jpg");
 
 my $exifinfo = Image::ExifTool->new->ImageInfo($img);
 close($img);
 
 foreach (sort keys %$exifinfo) {
     print "$_ -----> $$exifinfo{$_}\n";
 }

コードの解説

 use Image::ExifTool;

PerlのPackage、Image::ExifToolを読み込みます。

 my $img;
 open ($img, "< file.jpg");

Jpegファイルをオープンします。ここで画像ファイルは、``file.jpg''というファイル名になっています。ファイルハンドルは$imgとして定義されています。

 my $exifinfo = Image::ExifTool->new->ImageInfo($img);

オブジェクトを作成し、ImageInfoメソッドにファイルハンドルを入力することにより$exifinfoにハッシュのリファレンスが返ります。$exifinfoのリファレンスが示すハッシュにExif情報が入っています。この行ではオブジェクト作成とImageInfoの呼び出しを一行で行っています。別々に行うには

 my $e = Image::ExifTool->new;
 my $exifinfo = $e->ImageInfo($img);

のようにします。

 close($img);

ファイルをクローズします。

 foreach (sort keys %$exifinfo) {
     print "$_ -----> $$exifinfo{$_}\n";
 }

Exif情報が$exifinfoのリファレンスが示すのハッシュに入っているのでそれらを一つ一つ表示します。keysでは順番は保障されないので便宜上sortも行っています。

関連するCGIテクニック

画像サイズの取得
Image::Sizeを使って画像サイズを取得する方法
画像サイズ変更の仕方
サムネイルの作り方
画像ファイルサイズを制限したサムネイルの作り方
画像プリロードの仕方