将'date created'EXIF / XMP元数据写入jpgs的问题

时间:2014-01-09 15:17:13

标签: php image metadata exif xmp

我有一个PHP脚本,它使用Flickr API从Flickr下载我的图像,解析相关的文本和元数据,并使用图像文件中嵌入的元数据在我的服务器上保存版本。我使用历史图像,并希望在我的智能手机上按日期顺序显示它们(我在Android上试用F-Stop应用程序)。

通过将XMP数据写入文件,我使用PHP JPEG元数据工具包 - http://www.ozhiker.com/electronics/pjmt/进行元数据更新。但对于我的生活,我似乎无法让'约会'工作!

以下是一些示例图片:

这是来自Flickr的原始文件,日期设置为我创建文件http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fflickr.jpg的日期(右键单击图像并保存,如果您想在本地检查它)

这是我第一次尝试使用该工具包。它更新了XMP'DateCreated',但没有更新EXIF CreateDate或XMP CreateDate http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_orig.jpg

所以我强迫它改变XMP CreateDate http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_new.jpg。然后,它会在Windows资源管理器中显示为创建日期,但不会出现在F-Stop应用程序中。

所以我想知道仍然处于Flickr值的EXIF CreateDate是否优先,所以我删除了那些元数据(据我所见,工具集不允许你修改EXIF){ {3}}

在这些情况下,F-Stop都没有正确解释日期。我已经联系了开发者,但我实际上并不认为这是错误的应用程序,我认为这是文件中的元数据格式。那是因为当我在Windows资源管理器中显示该原始文件并更改了那里的日期时,此文件完美地运行http://metapicz.com/#landing?imgsrc=http%3A%2F%2Fwww.whatsthatpicture.com%2Ftools%2FPHP_JPEG_Metadata_Toolkit%2Fprocessed_new2.jpg

任何人都可以告诉我们发生了什么,或者建议我采取另一种方式来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

好的,我现在已经解决了这个问题。

似乎FStop应用程序无法从xmp文件中读取日期,因此它要么是从文件开头的JFIF / App12 /“Ducky”段读取它们,要么如果它不存在则是读取文件时间戳。当然,这意味着我计划用我的所有元数据创建单个xmp配置文件是行不通的。

我切换到ImageMagick但是遇到了同样的问题 - 我可以剥离配置文件并加载/更改xmp配置文件但是无法立即看到一种方法来创建/更新JFIF段中的日期值。

所以最后我通过exec命令调用了exiftool     exec(“exiftool -AllDates ='1863-07-23 12:00:00'-overwrite_original testfile.jpg”); (我会将它从AllDates改为设置CreateDate,但我需要对其进行测试)

有点笨重,但它有效!无论如何我都在使用Imagick来修改实际图像,所以如果有人知道某种方法我可以修改那些标题,那么我很高兴听到它。