为什么各种JPEG扩展?

时间:2012-07-09 13:35:32

标签: python mime-types image jpeg

在处理下载程序时,我遇到了Python mimetypes.guess_extension函数的以下内容:

In [2]: mimetypes.guess_extension('image/jpeg', strict=False)
Out[2]: '.jpe'

我知道 jpeg jpg 是有效的JPEG扩展,但我不知道 jpe 。因此,查看维基百科网站确实揭示了以下内容:

  

使用JPEG压缩文件的最常见文件扩展名是.jpg和.jpeg,但也使用.jpe,.jfif和.jif

我不知道的更多扩展。

所以主要问题:为什么JPEG有这么多(有效)的扩展名呢?

在相关的说明中,我想知道为什么Python确实返回'jpe'而不是'jpg'或'jpeg',因为我发现这些使用最多。

2 个答案:

答案 0 :(得分:9)

似乎mimetypes.guess_extension返回所有可能扩展中的第一个:

def guess_extension(self, type, strict=True):
    # ...
    extensions = self.guess_all_extensions(type, strict)
    if not extensions:
        return None
    return extensions[0]

因此,您将获得mimetypes.guess_all_extensions返回的列表中的第一个,结果是:

>>> mimetypes.guess_all_extensions('image/jpeg', strict=False)
['.jpe', '.jpg', '.jpeg']

我猜为什么.jpe也有效:

在DOS和早期Windows版本中,文件名只能包含8个字符和3个字符(有关详细信息,请参阅维基百科上的文章8.3 filename)。可能是他们将JPEG缩写为.JPE或.jpe - 这就是为什么我们现在有.j​​pe,.jpeg和.jpg。

确实.jpeg和.jpg更常见。

答案 1 :(得分:3)

严格来说,jpeg是一种图像压缩算法,而不是文件格式。

JFIF(JPEG文件交换格式)是使用jpeg压缩的常用文件格式。 EXIF(可交换图像文件格式)是另一种使用jpeg的格式,用于数码相机。 大多数人倾向于认为这些格式是相同的,但事实并非如此。

TIFF也可以用jpeg编码。