ГоловнаВсі публікаціїКатегоріїПро проєкт

Що таке формат HEIC і чому просто перейменовувати його в .jpg — погана ідея

Обкладинка нотатки: Що таке формат HEIC і чому просто перейменовувати його в .jpg — погана ідея
Зміст дописунатисність на посилання, щоб перейти до потрібного місця
Сучасні iPhone та деякі Android-пристрої знімають фото у форматі HEIC (High Efficiency Image Coding) — це новий стандарт зображень, який дозволяє зберігати якісні фото в меншому розмірі, ніж звичний JPEG. Ефективно, правда? Але з цим форматом пов'язано кілька важливих нюансів.

Підтримка в браузерах

HEIC підтримується не всіма браузерами. Наприклад:
  • ✅ Safari (на macOS і iOS) підтримує HEIC.
  • ❌ Chrome, Firefox, Edge — не підтримують HEIC напряму.
Тобто якщо завантажити HEIC-файл на сайт і спробувати його показати — користувачі в більшості браузерів просто не побачать зображеннь.

Часта проблема: користувачі просто змінюють .heic → .jpg

Щоб пройти HTML-валідацію при завантаженні зображення (наприклад, через <input type="file" accept="image/jpeg">), деякі користувачі просто перейменовують файл з photo.heic на photo.jpg.
І, на жаль, браузер не завжди може виявити це одразу.
Що стається далі?
  • Сервер чи фронтенд думає, що це .jpg, але не може його обробити.
  • Можуть виникати помилки при обробці зображення, генерації мініатюр, або при перегляді у браузері.
  • А найгірше — такі файли можуть "зламати" конвеєр зображень на сайті.

Що робити (розробникам)

  1. На фронтенді перевіряйте не лише розширення файлу, а і MIME-тип (file.type).
  2. Валідуючи на бекенді, аналізуйте вміст файлу або використовуйть бібліотеки, які точно визначають формат.
  3. Попереджайте користувачів про підтримувані формати.
  4. Коли не працює завантаження jpg - в процесі дебаггінгу перевірте mime-type. Цей троянський кінь може забрати час, тож краще одразу подивитись що всередині.
HEIC — сучасний і ефективний формат, але ще не всюди підтримується. Зміна розширення файлу — не конверсія формату, і вона створює більше проблем, ніж вирішує. Якщо ви розробник — перевіряйте формат на рівні вмісту. Якщо ви користувач — краще використовуйте конвертер, ніж зміну назви.

Цей допис поки що не має жодних доповнень від автора/ки

Задача на перевірку правильності розстановки дужок (Ruby)
21.05.2025 10:27

Задача на перевірку правильності розстановки дужок (Ruby)

meme code
meme code@memecode
Як знайти підмасив з максимальною сумою (Maximum Subarray Sum) в Ruby
22.05.2025 11:01

Як знайти підмасив з максимальною сумою (Maximum Subarray Sum) в Ruby

meme code
meme code@memecode
Реклама в Google для чайників: Покроковий гід для успішного старту
28.05.2025 10:21

Реклама в Google для чайників: Покроковий гід для успішного старту

meme code
meme code@memecode
Що таке jemalloc і як він стосується Ruby / Ruby on Rails
30.05.2025 11:53

Що таке jemalloc і як він стосується Ruby / Ruby on Rails

meme code
meme code@memecode
05.06.2025 01:52

[Fixed] uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

meme code
meme code@memecode
Прев'ю у network вкладці після оновлення Chrome стало дуже мале
05.06.2025 18:23

Прев'ю у network вкладці після оновлення Chrome стало дуже мале

meme code
meme code@memecode