解码图像文件以提取并修改图像头信息(使用Python)

2 投票
3 回答
4122 浏览
提问于 2025-04-16 13:21

我正在读取一个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) 

撰写回答