Почему фото с iPhone открываются не везде

Начиная с iOS 11, приложение «Камера» на iPhone по умолчанию сохраняет фото в формате HEIC. Этот формат основан на более эффективном кодировании изображений, чем JPEG, поэтому то же самое фото занимает заметно меньше места на телефоне. Эта эффективность — реальный выигрыш для хранилища. Это также единственная причина, по которой фото HEIC часто не открываются за пределами собственных приложений Apple: большинство программ и большинство сайтов, принимающих загрузку фотографий, никогда не создавались для его декодирования.

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

Что на самом деле происходит во время конвертации

HEIC и JPEG кодируют картинку принципиально разными способами, поэтому преобразование одного в другое означает полное декодирование изображения HEIC в исходные пиксели и перекодирование этих пикселей в целевом формате. Это декодирование выполняется с помощью сборки libheif на WebAssembly — того же декодера с открытым исходным кодом, на котором построен каждый другой браузерный конвертер HEIC без загрузки на сервер, поскольку нет возможности прочитать HEIC в браузере без обращения к серверу или работы этого декодера локально.

Никакие данные о файле никуда не отправляются для работы этой функции. Фото считывается с помощью собственного файлового API браузера, декодируется модулем WebAssembly внутри этой вкладки и возвращается вам в виде скачанного файла.

Выбор между JPG и PNG

JPG — правильный выбор по умолчанию почти для всех. Он меньше по размеру и читается практически любым существующим программным обеспечением и любой формой загрузки на сайте. Ползунок качества позволяет найти баланс между размером файла и детализацией; значение по умолчанию примерно соответствует тому, что использует собственный экспорт JPG в iPhone.

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

Чего не делает этот инструмент

Он конвертирует статичное фото — а не те несколько секунд движения из Live Photo, которые iPhone хранит как отдельные кадры внутри того же контейнера HEIC. Если движение имеет значение, сначала экспортируйте Live Photo как видео из меню «Поделиться».

Побочный эффект, о котором стоит знать: метаданные не переносятся

Фотографии HEIC, как и JPEG, содержат блок метаданных рядом с картинкой — марку и модель камеры, точное время и, если службы геолокации были включены, GPS-координаты места съемки. Ничего из этого не видно на самом изображении.

Конвертация через этот инструмент декодирует HEIC до исходных пикселей и заново перекодирует эти пиксели в JPG или PNG. Этот процесс никогда не считывает и не переносит отдельные поля метаданных оригинала — он работает только с самой картинкой — поэтому скачанный файл не содержит ничего из того, что было в HEIC. Это не дополнительный шаг очистки; это просто то, что делает декодирование и перекодирование картинки с нуля. Если у вас есть другие фото — JPEG или PNG, которые никогда не конвертировались — и они всё еще содержат эти данные, наш бесплатный инструмент Удаление EXIF покажет вам, что в них находится, и удалит это в той же вкладке браузера.

Фото, которое открывается везде, полезнее. Фото, которое незаметно не выдает, где вы были, безопаснее. Этот инструмент так вышло, что дает вам и то, и другое за одну конвертацию. Ни то, ни другое не является задачей Vaultine — Vaultine предназначен для того, чтобы прятать файлы под замок, а не конвертировать их — но всё это существует по одной и той же причине: ваши фото должны вести себя так, как вы от них ожидаете, и на ваших условиях.