首页 > 解决方案 > libwebp 显然已成功安装,但“无法识别位于 0x0000018986F14B80> 的图像文件 <_io.BytesIO 对象”

问题描述

我花了将近 20 个小时来研究这个问题,但一无所获,所以我真的很感谢任何人和每个人的帮助。

我正在下载 webp 图像以转换为 JPG。这是我的代码,下面评论中的其他人测试并有效:

webp_format = requests.get("https://http2.mlstatic.com/D_NQ_NP_711864-MLB46594538199_072021-O.webp")

buffer = BytesIO(webp_format.content)

image = Image.open(buffer)

image.convert('RGB')

image.save(buffer, 'jpeg')

image.save('C:\\Users\\Ze\\Documents\\Dropshipping\\Scraping\\Competitor product lists\\Selected\\test.jpg')

buffer.seek(0)
buffer.truncate()

file = {'file' : ('name', buffer, 'image/jpg')}

return file

我认为有问题的步骤是 Image.open。它说:

“UnidentifiedImageError:无法识别图像文件 <_io.BytesIO 对象位于 0x0000018986F44040>”

奇怪的是 print (features.check_module('webp'))Falsepython -m PIL说“WEBP 支持正常,加载 1.2.0”、“WEBP 透明度支持正常”、“WEBP 动画支持正常”等等它也说 WEBP”。此外,曾经有一条小消息以及上述错误表明未安装 webp 支持,但在我重新安装了 libwebp 和 PIL 并且 check_module 仍然显示为 False 后,它现在消失了。

什么可能导致这个问题,更重要的是,我该如何解决它?

标签: pythonpython-imaging-librarywebp

解决方案


推荐阅读