- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将任意数据添加到 JPEG 图像。具体来说,我需要存储两个整数。通过阅读有关 EXIF 数据,我的印象是无法制作自己的自定义字段,而是必须使用 EXIF 标准字段。
这篇文章Custom Exif Tags但是提到了一个 UserComment
字段,我认为它可以写入一个字符串。如果这是唯一的选择,那很好,因为我可以在逗号分隔的字符串中存储两个整数,例如“2,5”来存储整数 2 和 5,所以如果我只有一个存储字符串可以使用它仍然足够.
我从 Google 图片搜索中随机下载了几张图片,发现它们似乎没有 EXIF 数据,也许是 Google 故意删除的?我还用手机拍了几张照片,发现果然有大量的 EXIF 数据(图像大小、GPS 位置等)
通过一些 Google 搜索,我找到了这个关于如何读取/转储 EXIF 数据的示例:
from PIL import Image
image = Image.open('image.jpg')
exifData = image._getexif()
print('exifData = ' + str(exifData))
这很好用,如果我在没有 EXIF 数据的图像上运行它:
exifData = None
如果我在带有 EXIF 数据的图像上运行它,我会得到一个字典,显示预期的 EXIF 字段。
现在我的问题是,如何添加到 EXIF 数据中?使用上面链接帖子中提到的 UserComment 37510 字段,这里也是 https://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif/usercomment.html ,并使用 piexif
这是我迄今为止最好的尝试:
from PIL import Image
import piexif
image = Image.open('image.jpg')
exifData = image._getexif()
if exifData is None:
exifData = {}
# end if
exifData[37510] = 'my message'
exifDataBytes = piexif.dump(exifData)
image.save('image_mod.jpg', format='jpeg', exif=exifDataBytes)
如果我在 image_mod.jpg
上运行上面的第一个代码,我会得到:
exifData = {}
很明显,37510 消息没有正确写入。无论我使用的是具有 EXIF 数据的图像还是没有 EXIF 数据的图像,我都会得到相同的空字典结果。
在有人将此标记为重复之前,我还尝试了这篇文章 How can I insert EXIF/other metadata into a JPEG stored in a memory buffer?在评分最高的答案中提及,并在尝试读取 EXIF 数据(空字典)时得到相同的结果。
我做错了什么?如何使用 37510 或任何其他方式将自定义 EXIF 数据正确添加到图像?
最佳答案
您在 handling 中缺少一个步骤传递给piexif.dump
的数据:
exif_ifd = {piexif.ExifIFD.UserComment: 'my message'.encode()}
exif_dict = {"0th": {}, "Exif": exif_ifd, "1st": {},
"thumbnail": None, "GPS": {}}
exif_dat = piexif.dump(exif_dict)
img.save('image_mod.jpg', exif=exif_dat)
在此之后您应该能够将其读回。另见 this answer用于处理自定义元数据。
关于Python - 将任意 EXIF 数据添加到图像(UserComment 字段)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61626067/
我正在使用 exiv2操作 jpeg 文件中的元数据。我需要将更多与图像处理相关的信息写入元数据中。除了标准标签之外,是否可以创建自定义 Exif 标签? 最佳答案 来自 http://www.exi
是否可以检测是否有人修改了照片中的 EXIF 数据?有人如何检测到 EXIF 数据已被修改? 最佳答案 参见 Can digital cameras sign images to prove auth
如上图所示,我选择拍照exif信息为空。我选择了来自手机的图像选项,但 exif 信息不为空。 最佳答案 现在可以通过 ExifInterface 支持库从流中读取 EXIF 数据。 compile
我想使用iphone-exif library我的项目中的 EXIF 数据。但我不知道我是否犯了任何错误,它给出了像 这样的错误 架构 i386 的 undefined symbol : “_OBJC
场景:几个人带着数码相机一起去度假,然后抓拍。有些人记得将他们的相机时钟调整为本地时间,有些人将它们留在家乡时间,有些人将它们留在他们出生国家的本地时间,还有一些人将他们的相机留在工厂时间。 问题:照
如何加载图像并根据它的方向 exif 数据旋转它并使用UIImageOrientationUp exif 数据(或没有任何方向)保存它exif 数据)以便不处理 exif 方向数据的软件将正确显示图像
PHP 版本 5.2.9 我想知道是否有人在使用 EXIF 2.3 的 PHP 的 exif_read_data() 提取 GPS 或什至只是提取所有 EXIF 数据时遇到问题(并可能找到解决方案)。
我试图了解 jpeg 文件(十六进制)的 EXIF header 部分以及如何理解它,以便我可以提取数据,特别是 GPS 信息。无论好坏,我都在使用 VB.Net 2008(对不起,这是我现在可以掌握
我喜欢遵循此处描述的简码约定:https://laurakalbag.com/processing-responsive-images-with-hugo/并像这样在 config.toml 中设置
有谁知道 EXIF 键名的一个很好的解释?我正在写一个照片组织者,并希望尽可能多地从照片中获取信息。 但是,EXIF 键名并不是很有帮助。例如,据我所知(通过从 iPhoto 导出图像) 专辑或集合名
我正在研究照片查看器。在这种情况下,我编写了一个小类来读取和使用一些 EXIF 数据,例如图像方向。这门课很适合阅读。 但是,我会添加一个新选项来旋转照片。我想旋转和写入照片数据本身,而不仅仅是重写方
我是 PHP 新手,正在改编来自 http://www.techrepublic.com/article/create-a-dynamic-photo-gallery-with-php-in-thre
我正在使用我正在拍摄的照片中的 iPhone EXIF 数据。 目前我得到的 EXIF 数据是: { ApertureValue = "2.970854"; ColorSpace =
我有一堆带有地理标记的图片,我正在使用 pyexiv2 在 python 中访问它们。它工作得很好,只是我不明白“GPSImgDirection”值给出了什么。基本上,它是两个很大的数字,例如: 21
在Python中,如何找出图像文件中EXIF标签的位置?我假设它位于文件的开头,但我有一些专有的图像格式,并且希望确保情况始终如此。谢谢。 最佳答案 这不仅取决于 EXIF 本身,还取决于文件类型。
我正在尝试从 DNG 文件(不是缩略图)获取 jpg 预览。据我所知,预览只是一个 exif 预览,并不特定于 DNG。然而,尽管我在谷歌上搜索了很多次,但我找不到任何关于专门从 c# 文件的 exi
我正在使用这个库 http://blog.nihilogic.dk/2008/05/reading-exif-data-with-javascript.html .我这样调用库:EXIF.pretty
我需要访问已加载到页面上的图像中的 EXIF 数据。说,从浏览器扩展。 AFAIU,有一些 javascript 方法可以完成任务: 使用JavaScript-Load-Image ; 使用Nihol
我有一个 iOS 应用程序,用户可以在其中上传使用 UIImagePickerController 拍摄的照片。 当我查看 jpg exif 数据时,我注意到大量照片的“相机型号名称”中填写了“iPo
我想在特定相册中保存一些带有图像的字符串。所以我使用了[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{添加 Assets 。 但是当我从相册
我是一名优秀的程序员,十分优秀!