0

我在 python 中使用 requests 库来使用 http 下载图像文件。我在 python 中使用 BytesIO 将接收到的内容转换为原始字节,然后使用 Pillow() 将此原始内容保存为 jpeg 文件。

from PIL import Image
from io import BytesIO

rsp = requests.get(imageurl)
content_type_received = rsp.headers['Content-Type'] # mime type
binarycontent = BytesIO(rsp.content)
if content_type_received.startswith('image'): # image/jpeg, image/png etc
    i = Image.open(binarycontent)
    outfilename = os.path.join(outfolder,'myimg'+'.jpg')
    with open(outfilename, 'wb') as f:
        f.write(rsp.content)
    rsp.close()

在上面的代码中,无论 mime 类型如何,我都强制转换为 jpg。这对我来说似乎并不好。在 python 或 Pillow 库中是否有处理 mime 子类型 image/png、image/gif 等的标准方法?

4

1 回答 1

0

不完全确定您正在尝试做什么,但这个库Python Magic将允许您检查文件头以解释 MIME 类型。

编辑:如果您信任内容类型(通常不应该),请继续使用它命名文件。如果您不使用 Python 魔法来询问图像类型然后使用它。您保存的文件没有被“转换”,它是发送的任何格式。

于 2017-03-27T13:56:59.307 回答