写真にキーワードを埋め込む
PHP関数exif_read_dataで失敗
PHPで画像ファイルに埋め込まれた各種情報、とりわけEXIFの情報を読み込むには関数
exif_read_data
を使います。exif_read_dataを使うと、
画像のサイズ
作成日時
デジカメの機種
シャッター速度
などなど様々な情報が配列として取得できます。しかし、上記のキーワードは取得できません。なぜなら画像ファイルに埋め込まれた「キーワード」はEXIF(Exchangeable image file format)ではなく、IPTC(International Press Telecommunications Councilに属するからです。
PHP関数getimagesizeとiptcparseで成功
画像ファイルに埋め込まれたIPTCの情報をPHPで取り出すにはgetimagesize関数とiptcparse関数を使います。getimagesize関数はその名前からして画像サイズしか取得できないものとばかり思っていましたが、
getimagesize($file, $info)
とすることで、$info内に(サイズ以外)のIPTCの情報が配列として代入されます。中の情報はバイナリデータなので、これをiptcparseでパースします。
キーワードだけ取り出すならば、下記のようにします。
getimagesize(画像ファイル, $info);
$iptc = iptcparse($info['APP13']);
echo $iptc['2#025'][0];
写真を整理するためにキーワード(タグ)を埋め込みます。ここで使うのはAdobe PhotoshopやAdobe Bridgeなど。
1.ファイルメニューから「ファイル情報」
2.「説明」タブの「キーワード」にタグを入力していきます。
3.京都,桜,春などカンマで区切る
出来上がったらJPEG形式で保存します。