【发布时间】:2015-11-03 23:01:33
【问题描述】:
现在我有了二进制数据,但我无法使用 write() 函数将它们转换为 bmp 文件
详情
f.write(binary_data,"new.bmp")
TypeError: 需要一个类似字节的对象,而不是 'str'
其实我只是想修改一些图像数据来创建一个新的图像。我只知道,
- 打开图片并读取数据
- 将数据转成二进制(因为我要修改一些位数据)
- 写入数据然后保存
似乎 write(str_data) 在早期的 python 版本中确实有效。 (我参考了其他关于将数据写入图像的方法。)
我尝试使用 data.encode('hex')
LookupError: 'hex' 不是文本编码;使用 codecs.encode() 来 处理任意编解码器
还有其他方法可以修改位数据,然后将它们写入 bmp 文件吗?
【问题讨论】:
-
我猜是 Python 3。在那里你应该有
bytes类型的二进制数据。也许您将数据初始化为字符串。bytes()或只是b''将创建一个空的bytes。 -
非常感谢!我已经解决了这个问题。但是 bytes() 没有用。因为它只返回一个byte。 BMP 文件的类型是字节列表。所以这里应该使用 bytearray() :>