解包并打包由单个字节组成的结构

时间:2016-10-24 23:52:50

标签: python struct pack

我在结构中回填字节时得到struct.error: bad char in struct format,即使没有对它们进行任何更改。

我正在尝试对24位BMP图像的RGBTRIPLE中的每个字节执行按位操作。为了简单起见,我发布的代码只包含一个代表Bitmap中像素的样本字节序列;我不会对它进行任何按位操作,只是尝试将其打包回来。

from struct import *
from collections import namedtuple

def main():
    RGBTRIPLE = namedtuple('RGBTRIPLE', 'rgbtRed rgbtGreen rgbtBlue')
    rgbt_fmt = '=BBB'
    rgbt_size = calcsize(rgbt_fmt)

    rgbt_buffer = b'\x1c\x1e\x1f' 

    rgbt = RGBTRIPLE._make(unpack(rgbt_fmt, rgbt_buffer))

    rgbtRed = rgbt.rgbtRed
    rgbtGreen = rgbt.rgbtGreen
    rgbtBlue = rgbt.rgbtBlue

    rgbt_buffer = pack('rgbt_fmt', rgbtRed, rgbtGreen, rgbtBlue)

if __name__ == "__main__":
    main() 

根据我的理解,问题在于,当我解压缩字节时,我的内容大小为> 1个字节。以1字节为单位修复这些整数的最佳方法是什么,所以我可以使用相同的=BBB结构格式将它们打包回来?

0 个答案:

没有答案