Перейти к содержимому

JFIF — это JPEG: что меняет расширение .jfif

Неудобное расширение — единственное неудобное здесь. Файл .jfif хранит обычный JPEG, и любая программа, читающая JPEG, читает его; конвертация в PNG не сделает картинку резче, потому что заострять уже нечего.

JFIF расшифровывается как JPEG File Interchange Format — это спецификация начала 1990-х, описывающая, как обернуть поток данных JPEG, чтобы разные программы одинаково понимали, что означают пиксели. Обёртка — небольшой блок-маркер, маркер APP0, в начале файла, где записано соотношение сторон пикселя и иногда миниатюра. Всё после него — обычный JPEG.

Откуда берётся расширение

Расширение .jfif — привычка эпохи Windows. Некоторые камеры, некоторые телефоны и некоторые программы Windows сохраняют JPEG с ним, и часть из них не покажет миниатюру для того же файла, если переименовать его в .jpg. Байты не меняются, меняется только имя. Поэтому браузер прекрасно открывает файл .jfif, если перетащить его во вкладку, и поэтому же путаются операционные системы, полагающиеся на расширение.

Что на самом деле несёт блок-маркер

МаркерЧто он хранит
APP0 (JFIF)Версию, единицу плотности (dpi или точек на см) и соотношение сторон пикселя.
APP0 (другой)Блок от конкретного производителя — некоторые камеры пишут здесь своё.
APP1 (Exif)Метаданные камеры: экспозицию, дату, ориентацию, иногда GPS.
Всё послеПоток данных JPEG: таблицы квантования, таблицы Хаффмана и сжатое изображение.

Этому инструменту не нужно читать тот блок, чтобы конвертировать файл. .jfif стоит в том же списке принимаемых, что .jpg и .jpeg, поэтому конвертер считает все четыре расширения одним форматом. Единственное место, где маркер изучается, — просмотрщик метаданных, который читает его и сообщает что-то вроде JFIF 1.02, 72 dpi — и который сохраняет маркер, когда снимает другие метаданные, потому что блок JFIF описывает, как толковать пиксели.

Что конвертация в PNG может и чего не может

JPEG — формат с потерями: при сохранении часть деталей была выброшена, и нигде больше она не хранится. Декодирование файла возвращает ровно те пиксели, что уцелели. Запись этих пикселей в PNG сохраняет их без дальнейших потерь — поэтому PNG выглядит так же, как JPEG, и часто в несколько раз больше, потому что PNG отказывается притуплять что-либо ради размера.

Последний пункт — настоящая причина конвертировать. Если вы собираетесь править JPEG, работайте с PNG; если нужно только хранить, JPEG уже меньше.

Ограничения

Коротко

Вопросы

Сделает ли конвертация JFIF в PNG изображение резче?

Нет. Резкость была определена тогда, когда записывался JPEG, и декодирование не может выдумать выброшенные детали. PNG верно сохраняет декодированный результат — он не отменяет первое сжатие.

Файл .jfif — это просто переименованный .jpg?

По сути да. Это поток данных JPEG с блоком заголовка JFIF впереди и расширением, которое предпочитает часть программ. Браузеры и редакторы читают его как JPEG; необычно только расширение.

Почему PNG намного больше JFIF?

Потому что JPEG сжимает с потерями, а PNG — нет. PNG хранит те же пиксели без дальнейшего сжатия, поэтому фотография, сохранённая как PNG, часто в несколько раз больше.

Инструменты в этой статье

Все статьи