【问题标题】:Decode image file to extract image header information and modify it (with python)解码图片文件提取图片头信息并修改(用python)
【发布时间】:2011-03-09 17:30:50
【问题描述】:

我正在读取一个dpx格式的图像文件,并且想在标题的图像部分提取“方向”,并对其进行修改。我从来没有尝试过解释二进制数据,所以我有点不知所措。我正在尝试使用 struct 模块,但我真的不知道如何正确使用它。文件头规范在这里:

http://www.fileformat.info/format/dpx/egff.htm

谢谢。

【问题讨论】:

    标签: python


    【解决方案1】:

    方向似乎有一个恒定的偏移量,所以如果这是您想要更改的全部内容,那么我不会费心尝试解析所有内容,只需计算出偏移量(我认为这只是 @ 的大小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) 
    

    【讨论】:

    • 你好,写偏移值的时候,我可以直接给它赋值吗?还是我需要以某种方式转换?无论如何,您的解决方案似乎大部分都有效。
    • 是的,它可以工作,但由于某种原因,它没有达到我的预期。我得到一个值 0,根据规范它可以得到一个从 0 到 7 的值,但是除了 0 之外的任何其他值都不会被识别,但我想这与文件本身有关,你的解决方案很棒.谢谢。
    【解决方案2】:

    您可能需要考虑使用Imagemagic 来执行此操作。开源,支持dpx格式。

    【讨论】:

      【解决方案3】:

      Python Imaging Library PIL 具有可能返回相关数据的 am 属性 .info

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多