首页 > 解决方案 > 使用 PIL 转换 base64 编码的 png pic

问题描述

全部。最近我正在使用 PIL 来完成一些代码。作为默认演示,我向我展示了如何转换 jpg 图片文件,如下所示:

img = Image.open(filePath).convert('RGB')

然后我也尝试转换一个base64编码的图片来完成同样的事情。唯一的区别是图片是从 url 获得的,它是 base64 编码的。

codec = 'base64 encoded picture'
base64_data = re.sub('^data:image/.+;base64,', '', codec)
byte_data = base64.b64decode(base64_data)
image_data = BytesIO(byte_data)
img = Image.open(image_data)
img = img.convert('RGB')

在最后一行的 and 处显示“读取图片时流中断”。我有什么误解吗??

标签: python-imaging-library

解决方案


对于一些调试工作,我发现 python2 和 python3 使用不同的 lib(IOString 和 ByteIO)。只需进行不匹配并进行更正即可使此代码正常工作。


推荐阅读