Работа с изображениями

Что такое HEIC и почему фото с iPhone не открываются в Windows?

Откуда взялся формат .heic, почему Apple на него перешла, что именно ломается, когда такой файл попадает на ПК, и три способа получить из него JPG.

Коротко

HEIC называется формат файлов, в котором iPhone сохраняет фотографии с 2017 года. Тот же снимок, что и в JPG, он хранит примерно в половине объёма. Поэтому Apple его и выбрала, и поэтому почти никто за пределами экосистемы Apple его не просил. Windows, большинство веб-форм, старые телефоны на Android и многие фотосервисы либо отвергают такой файл, либо показывают пустую миниатюру. Решение простое: перевести фото в JPG, либо один раз в настройках телефона, либо для каждого файла, когда его нужно отправить.

Откуда взялся формат

HEIC расшифровывается как High Efficiency Image Container. Сам по себе это не способ сжатия, а контейнер. Формат контейнера называется HEIF (High Efficiency Image File Format), его стандартизировала группа MPEG в 2015 году как ISO/IEC 23008-12. Внутри контейнера данные изображения сжаты кодеком HEVC, тем же видеокодеком H.265, что используется для 4K-стриминга, только применённым к одному неподвижному кадру. HEIF может содержать и другие кодеки (AVIF представляет собой HEIF с AV1 внутри), но если кодек HEVC, Apple даёт файлу расширение .heic.

Apple сделала HEIC форматом камеры iPhone по умолчанию в iOS 11 в сентябре 2017 года. Причиной было место: внутрикадровое сжатие HEVC даёт то же визуальное качество, что и JPEG, примерно при 40–50 % размера файла, а iPhone тогда продавались с 32 ГБ памяти при камере уже на 12 мегапикселей. Медиатека из 5 000 фото по 3 МБ занимает 15 ГБ, а по 1,5 МБ занимает 7,5 ГБ. Кроме того, формат хранит в одном файле то, чего не может JPEG: 10-битный цвет, карту глубины для портретного режима, трёхсекундный ролик Live Photos и последовательности изображений.

Почему он ломается в других местах

Здесь накладываются друг на друга две отдельные проблемы.

Патенты. HEVC покрыт несколькими патентными пулами (MPEG LA, Access Advance, Velos Media), условия лицензирования которых годами оставались неясными и дорогими. Microsoft в Windows 10 решила вопрос так: поддержку контейнера поставляла бесплатно, а кодек Расширения для видео HEVC продавала в Microsoft Store за 0,99 $. Без него приложение «Фотографии» показывает имя файла и серый прямоугольник. На некоторых компьютерах производитель предустанавливает бесплатный вариант «от производителя устройства», на большинстве нет. Chrome, Firefox и Edge так и не добавили декодирование HEIC по той же лицензионной причине, поэтому любой сайт, показывающий превью изображений в браузере, видит HEIC как непонятный набор байтов. Safari на macOS и iOS декодирует его сам, потому что лицензию оплачивает Apple.

Программы, написанные до 2017 года. Значительная часть форм загрузки, CMS, бэкендов интернет-магазинов и фотокиосков проверяет файлы по расширению или по первым байтам, и написаны они были, когда «фото» означало JPEG, PNG или GIF. Они отвергают .heic как «не изображение». Android умеет декодировать HEIF с версии 9 (2018), но многие галереи и мессенджеры на всякий случай всё равно переводят файлы в JPEG при отправке.

На практике это выглядит так: когда владелец iPhone отправляет фото на Mac через AirDrop, всё работает; когда то же фото попадает на ПК по кабелю, почтой или через облачную папку, получатель не может открыть файл.

Почему этого часто не замечают

Во многих сценариях iOS переводит HEIC в JPEG автоматически, поэтому многие так и не узнают о существовании формата. Отправка через «Сообщения», «Почту», WhatsApp, Instagram и большинство сторонних приложений идёт через системное меню «Поделиться», а оно передаёт JPEG. Настройка Настройки → Фото → Перенос на Mac или ПК → Автоматически делает то же при копировании по USB. Исходный HEIC просачивается там, где файлы копируются, а не передаются через «Поделиться»: iCloud Drive, приложение «Файлы», перенос по USB с настройкой Переносить оригиналы, резервное копирование Google Диска и всё, что ради качества запрашивает оригинал.

Три способа получить JPG

  1. Перестать их создавать. Настройки → Камера → Форматы → Наиболее совместимый переключает камеру на съёмку в JPEG. Фото станут примерно вдвое больше, и пропадёт 10-битный цвет, зато ничего из отправленного не вернётся. Уже снятые фото в HEIC не конвертируются.
  2. Конвертировать при передаче. Установите для Перенос на Mac или ПК значение Автоматически, чтобы iOS конвертировала файлы при копировании по USB, и делитесь через приложения, а не копируйте файлы.
  3. Конвертировать уже имеющийся файл. Если несколько файлов уже оказались на ПК, инструмент HEIC в JPG декодирует их в браузере. Декодер (libheif, скомпилированный в WebAssembly) работает на вашем компьютере, так что папка семейных фото никуда не загружается. Он обрабатывает файлы пакетом, сохраняет дату съёмки и ориентацию и может записать PNG вместо JPG, если нужна копия без потерь. Если фото нужно ещё и уменьшить для почты, сожмите его в том же окне.

Что теряется при конвертации

Перевод HEIC в JPEG означает перекодирование с потерями: декодер восстанавливает полное изображение, а кодировщик JPEG сжимает его заново. При качестве 85–90 разница при обычном просмотре незаметна, но она есть, поэтому сохраните HEIC, если вам важна исходная копия. Две вещи пропадают полностью, потому что в JPEG для них нет места: карта глубины (размытие портретного режима больше нельзя перенастроить) и ролик Live Photo. Метаданные (время съёмки, модель камеры, GPS-координаты, если они записывались) переносятся в блок EXIF, поэтому проверьте, хотите ли вы оставлять геопозицию в файле, который собираетесь опубликовать.

Исчезнет ли проблема?

Медленно. Windows 11 на большинстве компьютеров по-прежнему берёт деньги за кодек HEVC. Браузеры в качестве формата неподвижных изображений нового поколения выбрали AVIF, потому что AV1 не требует отчислений. Получается, что «современный формат изображений», к которому движется веб, приходится HEIC родственником, а не им самим. Вероятнее всего, в долгосрочной перспективе HEIC останется форматом съёмки на устройствах Apple, а JPEG (или AVIF) форматом обмена, и конвертация будет происходить где-то посередине, в идеале там, где не нужно загружать ваши фото.

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

Похожие статьи

Блог →
Озвучка текстаTextToSpeech.tools Сжать видеоFreeCompress.video Китайско-английский словарьChineseDict.com