2016年04月27日 PHPで画像ファイルからタグ(キーワード)を取り出す

名古屋のデザイン会社 KOYUのトップページへ戻る

PHPで画像ファイルからタグ(キーワード)を取り出す

PHPで画像ファイルに埋め込まれたからタグ(キーワード)を取り出すにはgetimagesize関数とiptcparse関数を使います。

写真にキーワードを埋め込む

写真を整理するためにキーワード(タグ)を埋め込みます。ここで使うのはAdobe PhotoshopやAdobe Bridgeなど。

1.ファイルメニューから「ファイル情報」
2.「説明」タブの「キーワード」にタグを入力していきます。
3.京都,桜,春などカンマで区切る

出来上がったらJPEG形式で保存します。

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];

Copyright (C) 2016 KOYU Japan Corporation. All Rights Reserved