正确处理下载程序中的mime类型的方法

时间:2017-03-27 13:48:30

标签: python python-3.x python-requests pillow bytesio

我使用python中的请求库来使用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等的标准方法?

1 个答案:

答案 0 :(得分:0)

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

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