HEIC — формат Apple, в котором iPhone сохраняет фото по умолчанию. Он экономит место: при том же качестве файл меньше JPEG. Проблема в поддержке: Windows, старые редакторы и часть браузеров не открывают его без дополнительных кодеков.

HEIC и HEIF — не одно и то же

HEIF — контейнер для изображений, HEIC — его вариант с кодеком HEVC. На практике расширения .heic и .heif встречаются вместе, и оба могут содержать несколько кадров, например серию или Live Photo.

Почему не открывается

  • Windows не включает HEVC-кодек по умолчанию;
  • старые версии Photoshop и других редакторов не читают контейнер;
  • браузер может показать ошибку или пустое изображение;
  • файл с iPhone может быть Live Photo, а не обычной картинкой.

Варианты конвертации

Самый простой путь — открыть файл в браузере и сохранить в JPEG или WebP. Конвертер изображений делает это локально: файл не загружается на сервер, а библиотека HEIC подгружается только при первом использовании.

const result = await heic2any({
    blob: file,
    toType: 'image/jpeg',
    quality: 0.92
});

const jpeg = Array.isArray(result) ? result[0] : result;

Для сайта лучше сразу делать WebP: он легче JPEG при похожем качестве. Для печати и старых программ — JPEG.

Качество и размер

HEIC уже сжат с потерями. Повторное сжатие в JPEG ухудшает картинку, поэтому не ставьте качество 40–50% без необходимости. Для веба достаточно 80–85% и уменьшения длинной стороны до 1600–1920 px.

Если фото нужно только для превью, конвертируйте уменьшенную копию. Исходник храните отдельно: он пригодится для печати.

Ориентация и метаданные

iPhone записывает ориентацию в EXIF. Браузеры обычно применяют её при отрисовке, но не все библиотеки конвертации сохраняют метаданные. Проверьте результат: фотография не должна оказаться повёрнутой. При конвертации через canvas ориентация применяется браузером автоматически.

Когда конвертировать на сервере

Серверная конвертация нужна для пакетной обработки тысяч файлов, хранения оригиналов и единого пайплайна. Для разовой задачи и приватности лучше браузер: файл не покидает устройство. Минус — скорость зависит от телефона или ноутбука.

Коротко

  • HEIC — формат Apple, поддержка не universal;
  • для веба конвертируйте в WebP или JPEG;
  • не сжимайте повторно слишком сильно;
  • проверяйте ориентацию после конвертации;
  • локальная конвертация сохраняет приватность.