如何猜出图像mime类型?

时间:2013-02-01 11:03:07

标签: python image cross-platform mime

如何以跨平台的方式猜测图像的mime类型,并且没有任何外部库?

3 个答案:

答案 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功能。请注意,您可能会在不同的平台上获得不同的结果,但我仍然称之为跨平台。