如何在没有任何外部库的情况下以跨平台方式猜测图像的 mime 类型?
问问题
4803 次
3 回答
9
如果您事先知道您只需要处理有限数量的文件格式,您可以使用imghdr.what函数。
于 2013-02-01T12:28:10.303 回答
3
我检查了维基百科上流行的图像类型的格式,并尝试签名:
def guess_image_mime_type(f):
'''
Function guesses an image mime type.
Supported filetypes are JPG, BMP, PNG.
'''
with open(f, 'rb') as f:
data = f.read(11)
if data[:4] == '\xff\xd8\xff\xe0' and data[6:] == 'JFIF\0':
return 'image/jpeg'
elif data[1:4] == "PNG":
return 'image/png'
elif data[:2] == "BM":
return 'image/x-ms-bmp'
else:
return 'image/unknown-type'
于 2013-02-01T11:03:07.183 回答
1
如果您可以依赖文件扩展名,则可以使用mimetypes.guess_type函数。请注意,您可能会在不同平台上得到不同的结果,但我仍将其称为跨平台。
于 2013-02-01T11:19:39.070 回答