如何以跨平台的方式猜测图像的mime类型,并且没有任何外部库?
答案 0 :(得分:9)
如果您事先知道只需处理有限数量的文件格式,则可以使用imghdr.what功能。
答案 1 :(得分:2)
我在维基百科上检查了流行的图像类型的格式,并试图签名:
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'
答案 2 :(得分:1)
如果您可以依赖文件扩展名,则可以使用mimetypes.guess_type功能。请注意,您可能会在不同的平台上获得不同的结果,但我仍然称之为跨平台。