PHPを使ってデジカメで撮った写真のExif情報を出力する
昨年にカメラを新調してから、F値がなんだとか露出がどうとか、今まで全く気にしてなかったんだけど「これって写真撮るとき結構重要じゃね?」と、最近気づきました。いやはや気づくまで5年はかかりました。
で、撮った写真からこの情報を出すのに、画像を選んで右クリックしてプロパティとかで見れるんだけど、ものすごく面倒。右図みたいなやつ。何百枚とか撮ってたらこれだけで何時間もかかっちゃうわよ。
で、で、写真整理のときいちいちそんなことしてらんないよねということで、これを一気に出力するものないかなぁーと探していたところあったのでメモ。デジカメで撮ったそのF値とか露出とかひっくるめて“Exif情報”ってゆーみたいね。はい!一つお勉強になりました。
用意する環境とかは以下。
- PHPの動く環境
- PEL(Exif情報を操作するライブラリ)
だけ。ほんと簡単。
PHP動く環境ないよ!という人はずっと昔に書いたエントリーをどうぞ。(VISTAじゃなくても大丈夫だと思います)
VISTAにXAMPPをインストール
http://mishuku.net/archives/2008/03/vistaxampp.php
順を追って説明す。
1.PELのダウンロード
http://pel.sourceforge.net/↑から手にいれることができます。これ書いてるときは「pel-0.9.1.tar.zip (612 KiB)」を選択。
2.1を解凍してPHP動くとこに置く
自分の環境のメモになるので、必要に応じて変えてください。E:\xampp\htdocs\getExif
↓こんな感じ。
3.取得するPHPソースを置く
適当に書いたのでいかようにも変えてくださいな。
<?php
require_once('pel-0.9.1/PelJpeg.php');
$dir_path = './';
$filename = array();
$dir = dir($dir_path);
while($file = $dir->read()) {
if(!ereg('(^\.$)|(^\.\.$)', $file)) {
$filename[] = $file;
$jpeg = new PelJpeg($file);
$app1 = $jpeg->getExif();
if ($app1) {
$tiff = $app1->getTiff();
$ifd0 = $tiff->getIfd();
if ($ifd0) {
$exif = $ifd0->getSubIfd(PelIfd::EXIF);
$data['fnumber'] =$exif->getEntry(PelTag::FNUMBER)->getValue(); // 絞り値
$data['exposure_time'] =$exif->getEntry(PelTag::EXPOSURE_TIME)->getValue(); // 露出時間
$data['iso_speed_ratings'] =$exif->getEntry(PelTag::ISO_SPEED_RATINGS)->getValue(); // ISO速度
$data['focal_length'] =$exif->getEntry(PelTag::FOCAL_LENGTH)->getValue(); // 焦点距離
$data['date_time_original'] =$exif->getEntry(PelTag::DATE_TIME_ORIGINAL)->getText(); // 撮影日時
$data['model'] =$ifd0->getEntry(PelTag::MODEL)->getText(); // モデル
echo "絞り値 f/" . $data['fnumber'][0] / $data['fnumber'][1]. "/";
echo "露出時間 " . $data['exposure_time'][0] . "/" . $data['exposure_time'][1] . "秒/";
echo "ISO " . $data['iso_speed_ratings'] . "/";
echo "焦点距離 " . $data['focal_length'][0] / $data['focal_length'][1] . "mm/";
echo "撮影日時 " . $data['date_time_original'] . "/";
echo $data['model'];
echo "
";
}
}
}
}
$dir->close();
?>
ファイル名を「getExif.php」として2と同じところに設置。
↓こんな感じ
4.Exif情報を取得したい写真を置く
こんな感じ。
5.ブラウザでExif情報をみる
http://localhost/getExif/getExif.php取得したExif情報
絞り値 f/2.8/露出時間 10/30秒/ISO 1600/焦点距離 55mm/撮影日時 2010:02:18 00:00:01/NIKON D700 絞り値 f/3.8/露出時間 10/80000秒/ISO 320/焦点距離 75mm/撮影日時 2010:02:18 11:13:37/NIKON D700 絞り値 f/2.8/露出時間 10/50000秒/ISO 400/焦点距離 55mm/撮影日時 2010:02:18 11:14:41/NIKON D700
はい完了ー。
なにげに今年から撮った写真にこのExif情報つけてました。
Photographのビューワーを開いて写真にマウスを持っていくと上のほうにでるんです。
写真の一覧はこっちからどうぞ!
>>> Photograph
カテゴリー >>>
ON
,
memo / tips
PM 7:29
|
COMMENT(0)
|
TRACKBACK(2)











