You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PIL将下载的WebP图片转为JPG格式报错,该如何解决?

问题解决方法

错误原因

你的代码核心问题是Image.open()的传参逻辑错误:Image.open()仅支持接收本地文件路径或类文件对象作为输入,你直接传入requests返回的content字节串时,PIL会误将字节串识别为本地文件路径尝试读取,自然触发编码报错。你的第二种写法还存在逻辑顺序颠倒的问题,且转换后的PIL图像对象无法直接作为上传文件使用。

正确实现代码

import requests
from PIL import Image
from io import BytesIO

# 请求WebP图片
url = "替换为你的图片链接"
resp = requests.get(url)

# 1. 先把响应字节封装为类文件对象,再传入Image.open
webp_img = Image.open(BytesIO(resp.content)).convert("RGB")

# 2. 将转换后的RGB图像保存为JPG格式的字节流
jpg_buffer = BytesIO()
webp_img.save(jpg_buffer, format="JPEG")

# 3. 重置字节流指针到开头,避免后续读取为空
jpg_buffer.seek(0)

# 构造上传用的file字典
file = {'file': ("name.jpg", jpg_buffer, 'image/jpeg')}

额外注意事项

  • 若运行时提示不支持WebP格式,升级Pillow到最新版本即可:
    pip install --upgrade pillow
  • 必须执行seek(0)操作:调用save方法后字节流指针会指向末尾,不移到开头后续读取会返回空内容。

内容的提问来源于stack exchange,提问作者José Guedes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:48:05