我试图将Impressive移植到python3上使用它。
在某些时候,必须加载LOGO。 LOGO是硬编码的。 所以它看起来像这样:
LOGO = '\x89PNG\r\n\x1a\n\x00\x0 ...'
LogoImage = Image.open(StringIO.StringIO(LOGO))
尝试通过将行更改为:
来将其移植到python3时使用LogoImage = Image.open(io.StringIO(LOGO))
我收到以下错误消息
OSError: cannot identify image file <_io.StringIO object at 0x106b388b8>
我读了一下StringIO和BytesIO。但是,找不到解决方案了。
编辑:
从光盘加载图像不是问题。
答案 0 :(得分:1)
您需要使用bytes
instead of str
,io.Bytes
代替io.StringIO
:
LOGO = b'\x89PNG\r\n\x1a\n\x00\x0 ...' # NOTE: leading `b`
LogoImage = Image.open(io.BytesIO(LOGO))