解码图像文件以提取并修改图像头信息(使用Python)
我正在读取一个dpx格式的图像文件,想要提取头部图像部分的“方向”信息,并且还想修改它。我之前从来没有处理过二进制数据,所以有点不知所措。我尝试使用struct模块,但真的不知道该怎么正确使用。文件头的规格说明在这里:
http://www.fileformat.info/format/dpx/egff.htm
谢谢。
3 个回答
0
Python图像库PIL有一个属性叫做.info,这个属性可以返回一些相关的数据。
0
你可以考虑使用Imagemagic来实现这个功能。它是开源的,并且支持dpx格式。
1
看起来方向信息有一个固定的偏移量,所以如果你只是想改变这个,那就没必要去解析所有内容了。只需要算出这个偏移量(我觉得偏移量就是GENERICFILEHEADER
的大小加上一个字节,用来表示方向的高字节),然后直接读取或修改它就行了。
我建议你使用字节数组,这样做是最简单的。偏移量会因为使用大端格式或小端格式而有所不同,所以你可以试试下面这样的代码:
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)