使用Python将二进制数据转换为bmp图像文件

时间:2015-11-03 13:23:06

标签: python image bmp

现在我有二进制数据,但我不能使用write()函数将它们转换为bmp文件

详情

f.write(binary_data,"new.bmp")
  

TypeError:需要类似字节的对象,而不是' str'

事实上,我只想修改一些图像数据来创建新图像。我刚才知道的是,

  1. 打开图像并读取数据
  2. 将数据转换为二进制(因为我想修改一些位数据)
  3. 写入数据然后保存
  4. 似乎write(str_data)在早期的python版本中工作。 (我引用了其他关于将数据写入图像的方法。)
    我尝试使用 data.encode(' hex')

      

    LookupError:' hex'不是文本编码;使用codecs.encode()来   处理任意编解码器

    是否有其他方法可以修改位数据然后将它们写入bmp文件?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题 BMP图像文件以字节数组存储。只需使用bytearray()函数 我的解决方案是:

new_data = []
for i in range(0, len(data), 8):
    new_data.append(data[i:i+8])  # 8 digit binary list
int_data = [] 
for i in new_data:
    int_data.append(int(i,2))  # bytearray will convert decimal to hex
a= bytearray(int_data)

然后它可以使用write(a)来工作 产品:>