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

Using Python convert binary data to bmp image file

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

详情

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

TypeError: a bytes-like object is required, not 'str'

其实我只是想修改一些图像数据来创建一个新的图像。我只知道,

  1. 打开图片并读取数据
  2. 将数据转为二进制(因为我要修改一些位数据)
  3. 写入数据然后保存

write(str_data) 似乎在早期的 python 版本中有效。 (我参考了其他关于将数据写入图像的方法。)
我尝试使用 data.encode('hex')

LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs

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

我已经解决了这个问题。
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)
:>