在图像数据中查找关键字

时间:2012-01-29 04:10:03

标签: php image exif

我遇到了一个问题,我正在为摄影师的小型图像网站工作,摄影师使用photoshop将信息存储到图像中。
图像数据,位置,描述等信息......

自从CS3以来,他一直在这样做。

当用户将图片上传到网站时,他希望所有内容都自动发布,因此我试图读出所有关键字,如下所示:

$size = getimagesize($path, $info);
if(isset($info['APP13'])) {
    $iptc = iptcparse($info['APP13']);

    if(isset($iptc['2#025'])) {
        $tagsArr = $iptc['2#025'];
    } else {
         $tagsArr = array();
    }
}

这一切都适用于CS5中保存的图像,但对于保存在CS3中的图像,它会失败,即使我100%确定关键字在那里。

举个例子:
这个失败了 - http://woutr.be/naturalight/uploads/ea568fea3e7eb1448d30fb823f477aac.jpg
这个有效 - http://woutr.be/naturalight/uploads/e3f2e6db833803a77eb75aae16e8c8ec.jpg

我已经调查了几天,但我无法弄清楚为什么这对某些图片不起作用。

3 个答案:

答案 0 :(得分:2)

我知道你之前曾提到你曾尝试过ozhiker的代码,但是我能够使用Photoshop_File_Info.php从两个图像中提取完整的关键字列表

http://www.ozhiker.com/electronics/pjmt/download.html

从文件1:

amphibian aquatic belgium close-up common frog europe frog froglet leaf metamorphosis pond reproduction silhouette spring veins water waterplantsamfibie belgie blad bruine kikker europa kikker kikkervisje metamorfose nerven poel silhouet vijver voorjaar voortplanting watermilieu waterplanten

从文件2:

finland abstract boom tree bomen trees boomstam dromerig effect soft zacht kleur colour lijnen lines patroon pattern patronen patterns scenic picturesque sfeer atmosphere bos forest naaldhout conifer pine forest blauw blue lijnen lines sparrenbos fijnsparrenbos firtree spar fijnspar picea abies norway spruce habitat national park alps europe nationaal park nature natuur woud vegetatie plant vegetation planting tree boom boslandschap wildernis monochrome movement beweging

答案 1 :(得分:1)

我刚检查了两个文件,失败的文件没有工作文件的关键字。失败的文件描述了没有关键字的“Rana Temporaria”,而工作文件描述了一个“松林”,其中包含一长串关键字,如“阿尔卑斯山,植被,自然”。它们都有一个JPEG APP13数据段,但这些段的内容完全不同。

答案 2 :(得分:0)

您是否尝试过exif_功能?他们可以读取图像的标题。

http://php.net/manual/en/book.exif.php