我使用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等的标准方法?
答案 0 :(得分:0)
不完全确定您正在尝试做什么,但此库Python Magic将允许您检查文件头以解释MIME类型。
编辑: 如果您信任内容类型(通常不应该),请继续使用该文件命名文件。如果你不使用Python魔术来询问图像类型然后使用它。您保存的文件未被"转换"它是以任何格式发送的。