【问题标题】:How to read Lightroom keywords from image file using PHP?如何使用 PHP 从图像文件中读取 Lightroom 关键字?
【发布时间】:2011-10-26 13:44:21
【问题描述】:

我有一个允许用户上传照片的照片社区 (www.jungledragon.com)。我的平台是 PHP/CodeIgniter。

作为上传过程的一部分,我已经在使用 PHP 的 exif_read_data 函数读取 EXIF 信息,该函数运行良好。我阅读了相机详细信息并将其显示在信息选项卡上。

最重要的是,用户需要在上传照片后在网站上手动设置照片标题、描述和标签。但是,一些用户在他们的图像管理程序中管理这些字段,例如 Lightroom。如果我也能读到这些就太好了,上传将成为一种完全的乐趣。

我已经改进了我的 EXIF 阅读以阅读“标题”,这样用户就不必在上传后设置图片标题了。现在我正在寻找阅读关键字,这是我卡住的地方。这是 Lightroom 中图像的部分屏幕截图:

我可以读取元数据,但如何读取关键字?它不在元数据中的事实让我想知道它是否可能?我尝试使用 exif_read_data 读取我可以获得的每个值(ANY_TAG、IFD0、EXIF、APP12),但找不到关键字。

有什么想法吗?

【问题讨论】:

  • 我认为您应该使用其他一些软件检查图像,以便您可以排除 php 元数据读取中的任何限制。另外,LR是如何配置导出关键字的?参见例如lightroomsecrets.com/2010/11/keywords-and-exported-images
  • 谢谢。我实际上下载了一张照片,一位用户上传到我的网站,他声称其中有关键字。我包含的屏幕截图显示了导入 LR 的同一张照片。我认为这可以验证文件是否包含它?
  • 嗨,弗迪。这是一个旧帖子了。问题是否已解决?我也希望从 LR 中保存关键字,以及一堆其他元数据值。我看到的许多示例代码都建议阅读 APP13 数组,但我的测试图像中似乎没有。
  • @M61Vulcan 向下滚动,答案就在那里。
  • 感谢您对这个老话题的快速回复。 foto.biz 的链接不再有效,php.net iptcparse 解释一直引用我的元数据中没有的“APP13”。我在 IFD0.ExtensibleMetadataPlatform 中找到了关键字以及 Lightroom 标题和标题:作为一个很大的无格式字符串(大约 266 个字符,具体取决于图像),但是当我开始切割字符串时,它变成了 12,917 个字符,其中包含大量其他元数据它。大概在某个地方有一些隐藏的角色。无论如何,这超出了这个问题的范围。我会回来的。

标签: php exif photography lightroom


【解决方案1】:

尝试使用PEL,这是一个比 exif_read_data() 更全面的库来处理 exif 数据。

【讨论】:

  • 谢谢你的建议,PEL可以不用命令行安装吗?我问的原因是因为我的主人。
  • 我遇到了同样的问题,所以我只是下载了源代码,然后将其上传到了我的服务器上的某个地方。
【解决方案2】:

按照建议,您可能必须使用另一种读取元数据的方法。

http://www.foto-biz.com/Lightroom/Exif-vs-iptc-vs-xmp

图像关键字可能存储在 IPTC 中,而不是 EXIF 中。我不知道是否有读取 iptc 的标准平台方法,但快速 google 显示了这一点

http://php.net/manual/en/function.iptcparse.php

【讨论】:

  • 谢谢,非常有用。将试一试并尽快报告。
  • 它有效 :) iptcparse 函数的官方示例给了我即时需要的结果。非常感谢!
【解决方案3】:

经过长期研究,我找到了将lightroom导出的关键字导出为jpg文件的解决方案:

$image = getimagesize($imagepath, $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    $keywordcount = count($iptc["2#025"]);
    for ($i=0; $i<$keywordcount; $i++)
    { 
        echo "keyword : " . $iptc["2#025"][$i] . "<br/>";
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 2010-12-09
    • 2011-04-13
    • 2022-10-03
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多