Почему различные расширения JPEG?
Во время работы с загрузчиком я столкнулся с функцией Python mimetypes.guess_extension
:
In [2]: mimetypes.guess_extension('image/jpeg', strict=False)
Out[2]: '.jpe'
Я знал, что jpeg и jpg являются действительными расширениями JPEG, но я не знал о jpe. Таким образом, просмотр сайта wikipedia показал следующее:
Наиболее распространенными расширениями файлов для файлов, использующих сжатие JPEG, являются:.jpg и .jpeg, хотя .jpe,.jfif и .jif также используются
Еще больше расширений, о которых я не знал.
Итак, главный вопрос: почему у JPEG есть так много (действительных) расширений, связанных с ним?
В соответствующей заметке я хотел бы знать, почему Python возвращает "jpe", а не "jpg" или "jpeg", поскольку я вижу, что они больше всего использовались.
Ответы
Ответ 1
Появляется 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 и ранних версий имена файлов могут содержать только 8 символов и 3 символа для расширения (см. статью 8.3 filename в Википедии для получения дополнительной информации Информация). Может быть, они сократили JPEG до .JPE или .jpe - вот почему у нас теперь есть .jpe,.jpeg и .jpg.
Это действительно так, что .jpeg и .jpg более распространены.
Ответ 2
В строгом смысле jpeg - это алгоритм сжатия изображения, а не формат файла.
JFIF (формат обмена файлами JPEG) - это обычный формат файла, который использует сжатие jpeg.
EXIF (сменный формат файла изображений) - это другой формат с использованием jpeg, используемый в цифровой камере.
Большинство людей склонны считать, что этот формат один и тот же, но это не так.
TIFF также может быть закодирован в формате jpeg.