我想使用已上传到画廊的照片中的 EXIF 数据。特别是,我希望能够在照片拍摄的 EXIF 日期对文件夹或收藏集的 plonetruegallery 视图中的图像进行排序。谷歌搜索告诉我 ATImage 类型确实存储了 EXIF 数据,但我最近没有看到任何使用它的东西。即使我可以只导入图像以将创建日期更改为取自 EXIF DateTimeOriginal 的日期,那也很棒。
有没有其他人试图实现这一目标?
我想使用已上传到画廊的照片中的 EXIF 数据。特别是,我希望能够在照片拍摄的 EXIF 日期对文件夹或收藏集的 plonetruegallery 视图中的图像进行排序。谷歌搜索告诉我 ATImage 类型确实存储了 EXIF 数据,但我最近没有看到任何使用它的东西。即使我可以只导入图像以将创建日期更改为取自 EXIF DateTimeOriginal 的日期,那也很棒。
有没有其他人试图实现这一目标?
由于您的用例非常狭窄,其他人不太可能尝试对 Plone 做同样的事情。一些通用指针:
使用 EXIF-py 戳存储在 ImageField 中的原始图像数据
https://github.com/ianare/exif-py
杂项。关于 Archeypes 图像和文件字段的信息:
http://collective-docs.readthedocs.org/en/latest/content/archetypes/files.html
对于 iptc 元数据(大多数图像工具都存储元数据),您可以尝试http://pypi.python.org/pypi/unweb.iptc
这是一个使用事件订阅者的巧妙而现代的解决方案。如果您只有 exif 元数据,您可以重用代码并使用 exif-py 执行相同操作
ATPhoto (http://plone.org/products/atphoto/) 已经过时了,你不应该大量使用它,但你可以看看它如何解析 EXIF 标签以获得灵感(和代码重用)。
默认情况下,ATImage 对象继承自 imagetransform,因此它们有一个名为 getExif() 的方法:https ://github.com/plone/Products.ATContentTypes/blob/master/Products/ATContentTypes/lib/imagetransform.py#L87
与图库的集成取决于您,并且不应该比在标题中执行 context/getExif 并以您想要的方式显示更难。
这里插件的主要问题是关于性能和依赖关系。使用 python 进行解析、存储、同步,这是 IMO 相当大的问题来源。
我已经尝试了许多 python 包 promize 来提取和构造 exif,而无需真正的开箱即用解决方案。