我正在从包含 png 文件的数据库中读取 blob。
blob 看起来正确并且是字节数据类型。开始:
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x92\x00\x00\x00m\x08\x06\x00\x00\x00J\xbf8B\x00\x00\x00\x06bKGD\x00\x00\x00\x00\x00\x00\xf9C\xbb\x7f\x00\x00\x00\tpHYs\x00\x00\x0b\x13\x00\x00\
但是,当我执行:
image = wx.Image(blob)
我收到消息:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
它似乎将字节视为字符串,但为什么呢?
wx.Image()
不支持从原始字节流创建图像。该类将其解释为文件名(必须是字符串,因此正在对其进行解码)。
将您的数据包装在一个io.BytesIO()
对象中;wx
接受这样的对象作为流:
import io
image = wx.Image(io.BytesIO(blob))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句