Как конвертировать HEIC в Base64
- Перетащите файл
.heicили.heifв поле или выберите его через диалог. - В списке Формат вывода по умолчанию выбран Чистый Base64. Переключитесь на Data URI или JSON, если получателю нужен MIME-тип вместе с данными.
- Нажмите Скопировать результат или Сохранить как .txt.
В строке с информацией показан MIME-тип, который назначил браузер. Если фото пришло с iPhone через меню «Поделиться» или облачный сервис, посмотрите на эту строку: некоторые способы передают копию в JPEG вместо исходного HEIC, и тогда там будет image/jpeg.
Почему HEIC не показывается в большинстве браузеров
HEIC хранит фото, сжатое кодеком HEVC (H.265), внутри контейнера HEIF. Файлы получаются маленькими при высоком качестве, поэтому iPhone и использует этот формат по умолчанию. А вот поддержка в браузерах так и не подтянулась: по актуальным данным о совместимости HEIC показывают Safari 17 и новее, а Chrome, Edge, Firefox и Samsung Internet – нет.
Поэтому превью на этой странице работает в Safari, а в других браузерах показывает битую картинку. Base64 в обоих случаях правильный, просто браузер не может его нарисовать. То же касается параметров изменения размера и конвертации, которые доступны для других типов изображений: для них браузер должен декодировать картинку, поэтому здесь их нет.
Когда HEIC в Base64 подходит
- Архив или синхронизация оригинала. Если система хранит фото как Base64 в базе данных или JSON-выгрузке, HEIC сохраняет полное качество и небольшой размер.
- API, которые принимают HEIC. Некоторые API для изображений и документов берут HEIC напрямую. Многие принимают только JPEG, PNG, GIF и WebP, так что перед отправкой сверьтесь со списком поддерживаемых типов.
- Только устройства Apple. Внутренняя страница, которую открывают исключительно в Safari, может использовать data URI с HEIC.
Для веб-страницы, письма или обычного API для изображений сначала сконвертируйте фото в JPEG: на Mac откройте его в «Просмотре» и выберите «Экспортировать», а на iPhone переключите формат камеры на «Наиболее совместимый», и новые снимки будут в JPEG. Затем закодируйте результат в JPG в Base64, там же можно уменьшить фото и удалить данные о местоположении.
Как выглядит HEIC в Base64
Файлы HEIC начинаются с блока ftyp, как AVIF и MP4. По бренду видно, что внутри:
| Бренд | Base64 (с блоком ftyp в 24 байта) |
|---|---|
heic | AAAAGGZ0eXBoZWlj |
heix | AAAAGGZ0eXBoZWl4 |
mif1 | AAAAGGZ0eXBtaWYx |
Пятый символ зависит от размера блока, поэтому сравнивайте, начиная с 9-го: eXBoZWlj означает статичное изображение HEIC. В выводе JSON в качестве типа стоит image/heic или image/heif, в зависимости от того, что сообщает браузер. Если браузер не сообщает ничего, файл .heic получает image/heic по расширению, а файл .heif – application/octet-stream; если получатель проверяет тип, исправьте его вручную.
Вопросы и ответы
Можно ли вставить data URI с HEIC в тег img?
Только для Safari 17 и новее на macOS и iOS. Chrome, Edge и Firefox не декодируют HEIC и показывают битую картинку. Для всего, что будут открывать другие люди, используйте JPEG, PNG или WebP.
Конвертирует ли этот инструмент HEIC в JPEG?
Нет. Браузеры, кроме Safari, не умеют декодировать HEIC, поэтому страница кодирует исходный файл как есть. Сначала переведите фото в JPEG на телефоне или компьютере, а затем воспользуйтесь JPG в Base64.
Как сделать, чтобы iPhone сохранял JPEG вместо HEIC?
В «Настройках» откройте «Камера», затем «Форматы» и выберите «Наиболее совместимый». Новые снимки будут сохраняться в JPEG, а уже сделанные фото в HEIC останутся как есть.