使用Python向JPEG文件添加注释
我想写一个Python程序,给一个jpeg文件添加评论。我了解到,在jpeg文件中,评论是通过一个叫做0xfffe的标记来表示的。那么,我是不是可以直接打开这个文件,然后在这个标记后面加上我想要的评论呢?我的代码大概是这样的:
file = open("someimage.jpg", "a+b")
file.write("\xff\xfeCOMMENT")
file.close()
如果我的评论在文件结束标记(0xffd9)之后,这样会有影响吗?谢谢!
2 个回答
2
被接受的答案提到了EXIF字段。如果你需要在标准JPEG中添加评论,就得插入一个表示评论长度的部分:
你需要在FF FE这两个字节和评论之间插入两个字节,这两个字节表示评论的长度(加上2个字节),并且要用大端格式(unsigned short)来表示。
举个例子,表示评论Hello的字节序列是FF FE00 0748 65 6C 6C 6F,因为这个内容的总长度(包括长度字节和评论)是7个字节。如果你想要一个可选的C风格的结束符,那就是FF FE00 0848 65 6C 6C 6F 00。
评论部分应该严格放在文件结束标记(FF D9)之前,虽然有些图片查看器可能会理解结束标记之后的额外数据。
想了解更多细节,可以查看 JPG文件中的文本评论是如何工作的?。
2
这样做是可以的(它会在存储图片所需的部分之外添加文本)。
一种更高级的方法是读取JPG文件格式,并在EXIF字段中添加评论。可以参考这个StackOverflow的讨论: Python的EXIF处理库
可以查看 pyexiv,这是一个用于Python的工具,可以读取和写入图片的元数据。