PHPでExif情報を取得

思った以上に簡単にカメラ機種や撮影時間などのメタデータを取得できた。flickrを使うと自動的にExif情報をゲットできるみたいだけど、自作でフォトビューワーとか作りたい人(自分)のために。以下のExifAll.phpでExif情報の一覧を取得可能。ちなみにデジカメで撮った画像をフォトショで「Web用に保存」してしまうとExif情報が削除されるので注意が必要。

[sourcecode language=’php’]
$section)
{
foreach ($section as $name => $val)
{
echo “$key.$name: $val
n”;
}
}
?>
[/sourcecode]
続いて欲しい情報だけを取り出すソース。

ExifSelect.php
[sourcecode language=”php”]
n”;
echo “Model = “.$exif[‘IFD0’][‘Model’].”
n”;
echo “ExposureTime = “.$exif[‘EXIF’][‘ExposureTime’].”
n”;
echo “ApertureFNumber = “.$exif[‘COMPUTED’][‘ApertureFNumber’].”
n”;
echo “ISOSpeedRatings = “.$exif[‘EXIF’][‘ISOSpeedRatings’].”
n”;
echo “DateTimeOriginal = “.$exif[‘EXIF’][‘DateTimeOriginal’].”
n”;
echo “ExposureBiasValue = “.$exif[‘EXIF’][‘ExposureBiasValue’].”
n”;
echo “ExifImageWidth = “.$exif[‘EXIF’][‘ExifImageWidth’].”
n”;
echo “ExifImageLength = “.$exif[‘EXIF’][‘ExifImageLength’].”
n”;
echo “WhiteBalance = “.$exif[‘EXIF’][‘WhiteBalance’].”
n”;
echo “DigitalZoomRatio = “.$exif[‘EXIF’][‘DigitalZoomRatio’].”
n”;
?>
[/sourcecode]

COMPUTED、THUMBNAILおよびCOMMENTのセクションは常に配列となるため、それに合わせる為にexif_read_data ()の第3引数を1にする。これで全てのセクションと値を配列として格納するため、2次元配列のカタチで取得できるようになる。詳しくはこちらを参照。

※セクション名の付け方は各メーカーによって異なるようです。上記のソースはNikonのD80で撮影した画像のExif情報を元にしています。他メーカーの場合は一覧を取得するExifAll.phpでセクション名を確認してください。