aspose.info
RU

Файл JFIF — что такое файл .jfif?

Обновлено

.JFIF вариант №

JFIF (формат обмена файлами JPEG (JFIF)) — это файл формата изображения с расширением .jfif. JFIF строится поверх JIF (формата обмена JPEG), уменьшая сложность и устраняя его ограничения.

Краткая история JFIF

Разработкой документа JFIF руководил Эрик Гамильтон, и соглашение по первой версии было заключено в конце 1991 года. Версия 1.02 была опубликована 7 сентября 1992 года. В RFC 2046 указано, что формат JFIF используется для передачи изображений JPEG через Интернет. JFIF был опубликован ECMA в 2009 г. и стандартизирован ITU-T в 2011 г. как его Рекомендация T.871 и ISO/IEC в 2013 г. как ISO/IEC 10918-5.

Формат файла JFIF

Файл JFIF состоит из последовательности маркеров, как определено в части 1 стандарта JPEG. Каждый маркер состоит из двух байтов (FF, за которым следует байт, указывающий тип маркера). Маркеры могут быть либо автономными, либо указывать начало сегмента маркера.

JFIF позволяет нескольким компонентам, таким как Y, Cb, Cr, иметь разное разрешение, но их выравнивание не определено. В отличие от JPEG, JFIF может предоставлять информацию о разрешении и соотношении сторон. JFIF также определяет используемую цветовую модель.

Структура файла

СегментКодОписание
SOIFF D8Начало изображения
JFIF-APP0FF E0 s1 s2 4A 46 49 46 00 …
JFXX-APP0FF E0 s1 s2 4A 46 58 58 00 …
дополнительные сегменты маркера
SOSFF DAНачало сканирования
сжатые данные изображения
EOIFF D9Конец изображения

Стандарт JFIF определяет следующие сегменты:

Сегмент маркера JFIF APP0

Это обязательный сегмент, содержащий параметры изображения. Он также может содержать встроенную несжатую миниатюру.

ПолеРазмер (байты)Описание
Маркер APP02FF E0
Длина2Длина сегмента без маркера APP0
Идентификатор5JFIF (4A 46 49 46 00) в ASCII, оканчивающийся нулевым байтом
Версия JFIF2Версия JFIF
Единицы плотности1Единица для следующих полей плотности пикселей 00 : Нет единиц; соотношение сторон ширина:высота в пикселях равно Ydensity:Xdensity 01: пикселей на дюйм 02 : Пикселей на сантиметр
Xdensity2Горизонтальная плотность пикселей больше нуля
Ydensity2Вертикальная плотность пикселей больше нуля
Xthumbnail1Горизонтальное количество пикселей встроенной миниатюры RGB. Может быть ноль
Ythumbnail1Вертикальное количество пикселей встроенной миниатюры RGB. Может быть ноль
Эскизы данных3 × nНесжатые 24-битные растровые данные миниатюр RGB

Сегмент маркера APP0 расширения JFIF

Это необязательный раздел, который, если он определен, должен следовать сразу за сегментом маркера JFIF APP0. Этот раздел поддерживается JFIF версии 1.02 и выше и позволяет встраивать эскизы в трех различных форматах.

ПолеРазмер (байты)Описание
Маркер APP02FF E0
Длина2Длина сегмента без маркера APP0
Идентификатор5JFXX (4A 46 58 58 00) в ASCII, оканчивающийся нулевым байтом
Формат миниатюры1Указывает, какой формат данных используется для следующей встроенной миниатюры: 10 : Формат JPEG 11: формат палитры 1 байт на пиксель 13: 3 байта на пиксель в формате RGB
Эскиз данныхпеременная

Преобразование JFIF в другие форматы файлов изображений

JFIF можно преобразовать в популярные форматы файлов изображений, такие как PNG, JPG и PDF.

Использованная литература

См. также