【发布时间】:2011-03-09 17:30:50
【问题描述】:
我正在读取一个dpx格式的图像文件,并且想在标题的图像部分提取“方向”,并对其进行修改。我从来没有尝试过解释二进制数据,所以我有点不知所措。我正在尝试使用 struct 模块,但我真的不知道如何正确使用它。文件头规范在这里:
http://www.fileformat.info/format/dpx/egff.htm
谢谢。
【问题讨论】:
标签: python
我正在读取一个dpx格式的图像文件,并且想在标题的图像部分提取“方向”,并对其进行修改。我从来没有尝试过解释二进制数据,所以我有点不知所措。我正在尝试使用 struct 模块,但我真的不知道如何正确使用它。文件头规范在这里:
http://www.fileformat.info/format/dpx/egff.htm
谢谢。
【问题讨论】:
标签: python
方向似乎有一个恒定的偏移量,所以如果这是您想要更改的全部内容,那么我不会费心尝试解析所有内容,只需计算出偏移量(我认为这只是 @ 的大小987654321@ 加上一个字节作为方向字的高字节)并直接读取/操作它。
使用字节数组将是我的首选。偏移量会有所不同,具体取决于它是大端还是小端格式,所以这样的东西可能对你有用:
b = bytearray(your_byte_data)
big_endian = (b[0] == 0x52)
offset = 768 + big_endian
current_orientation = b[offset] # get current orientation
b[offset] = new_offset # set it to something new
open('out_file', 'wb').write(b)
【讨论】:
您可能需要考虑使用Imagemagic 来执行此操作。开源,支持dpx格式。
【讨论】:
Python Imaging Library PIL 具有可能返回相关数据的 am 属性 .info
【讨论】: