How do I save custom information to a PNG Image file in Python?(如何将自定义信息保存到Python中的PNG图像文件?)
本文介绍了如何将自定义信息保存到Python中的PNG图像文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在Python中打开一个PNG图像,向其中添加一些自定义数据,保存图像文件,稍后再次打开它以检索数据。我在Python3.7中工作。我更喜欢使用PNG图像格式,但如果别无选择,也可以转换为其他格式。在PNG标准更新以允许在其中存储自定义数据之前,我阅读了大量过时的答案和文章。我希望得到今天(2019年10月)可用的答案,当然,如果启用了一些有帮助的东西,我也会接受未来的更新答案。真的很难搜索到这种特定的问题,因为"save"、"png"、"python"、"info"都是非常通用的术语。
我可以使用Pillow(目前是6.2.0)检索一些数据。我解决不了的是如何将更多的EXIF数据存储到PNG中。
from PIL import image
targetImage = Image.open("pathToImage.png")
targetImage.info["MyNewString"] = "A string"
targetImage.info["MyNewInt"] = 1234
targetImage.save("NewPath.png")
以上内容在我保存时会丢失信息。我看过一些使用targetImage.save("NewPath.png", exif=exif_bytes)
的文档,但它只适用于EXIF格式的数据。我查看了piexif
和piexif2
包,但它们要么只支持JPEG,要么不允许自定义数据。
我是Python的新手,所以如果我在文档中遗漏了一些更有经验的程序员会认识到的明显内容,我向您表示歉意。如果解决方案已经存在,我真的不想重新发明轮子。
推荐答案
您可以使用PngImagePlugin
模块中的PngImageFile
和PngInfo
将元数据存储在枕头中,如下所示:
from PIL.PngImagePlugin import PngImageFile, PngInfo
targetImage = PngImageFile("pathToImage.png")
metadata = PngInfo()
metadata.add_text("MyNewString", "A string")
metadata.add_text("MyNewInt", str(1234))
targetImage.save("NewPath.png", pnginfo=metadata)
targetImage = PngImageFile("NewPath.png")
print(targetImage.text)
>>> {'MyNewString': 'A string', 'MyNewInt': '1234'}
在此示例中,我使用的是文本,但您也可以使用add_itxt
将其另存为ITXT。
这篇关于如何将自定义信息保存到Python中的PNG图像文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何将自定义信息保存到Python中的PNG图像文件?


猜你喜欢
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 沿轴计算直方图 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12