Co to jest HEIC? Format zdjęć z iPhone’a, którego nie otwiera pół internetu

przez Łukasz | lip 23, 2026

Znasz to: ktoś przesyła Ci zdjęcie z iPhone’a, otwierasz je na Windowsie albo próbujesz wgrać na stronę, a plik kończy się na .heic i nic nie chce go wyświetlić. To nie jest uszkodzony plik ani błąd pobierania. To po prostu format, którego większość internetu nie została nauczona czytać. HEIC to domyślny format zdjęć na iPhone’ach od 2017 roku — i jednocześnie jeden z najlepszych przykładów na to, że o losie formatu decyduje nie jego jakość, tylko licencje.

Warto go opisać osobno, bo w naszej serii — od WebP, przez AVIF i JPEG XL, po PNG — HEIC jest formatem, na który trafia się nie z wyboru, lecz z konieczności: bo tak zapisuje zdjęcia telefon, którego używa pół świata.

Skąd wziął się HEIC

Zacznijmy od nazwy, bo ona już sporo tłumaczy. HEIC to zdjęcie zapisane w kontenerze HEIF (High Efficiency Image File Format, standard ISO/IEC 23008-12 z 2015 roku, zbudowany na tym samym fundamencie co pliki MP4), skompresowane kodekiem HEVC, znanym też jako H.265 — tym samym, którym koduje się wideo 4K. Apple jako pierwszy duży gracz wdrożył ten format na szeroką skalę, ustawiając go domyślnie w iPhone’ach od iOS 11 (2017), począwszy od iPhone’a 7.

Powód był czysto praktyczny: oszczędność miejsca. HEIC daje zdjęcie mniej więcej o połowę lżejsze niż JPEG przy tej samej jakości — dwunastomegapikselowa fotografia, która jako JPEG waży 5–8 MB, jako HEIC schodzi do 2–4 MB. Do tego kontener potrafi więcej niż JPEG: przechowuje kolor 10-bitowy i HDR, przezroczystość, „żywe zdjęcia”, mapy głębi, a nawet kilka obrazów w jednym pliku.

HEIC kontra AVIF — czyli dlaczego jeden wygrał, a drugi nie

I tu pojawia się najciekawszy wątek, który spina całą naszą serię. HEIC i AVIF to bliscy kuzyni — oba są zbudowane na tym samym kontenerze HEIF. Różnią się jednym: tym, jakim kodekiem ściskają obraz w środku. HEIC używa HEVC, który jest obłożony patentami i skomplikowanymi opłatami licencyjnymi. AVIF używa AV1 — kodeka wolnego od opłat, rozwijanego otwarcie przez Alliance for Open Media.

Ta jedna różnica przesądziła o wszystkim. Przeglądarki niemal zgodnie odmówiły natywnej obsługi HEIC właśnie z powodu patentów HEVC — i ta sama branża wybrała zamiast tego wolne od opłat AVIF, który dziś działa wszędzie. To nie jakość rozstrzygnęła, kto trafi do każdej przeglądarki, a kto zostanie zamknięty w jednym ekosystemie. Rozstrzygnęła licencja. Dokładnie ta sama lekcja, którą widzieliśmy przy JPEG XL: o adopcji formatu decyduje ekosystem, nie sama specyfikacja.

Czy HEIC jest gotowy na web

Krótko: nie, i to najmocniejsze „nie” z całej serii. Natywnie HEIC renderuje w zasadzie tylko Safari, bo korzysta z systemowego kodeka Apple. Chrome, Firefox i Edge nie wyświetlą pliku .heic wstawionego w stronę — pokażą ikonę zepsutego obrazu albo go pobiorą. W praktyce Can I Use pokazuje kilkanaście procent globalnego wsparcia i jest to niemal wyłącznie Safari.

Na poziomie systemu bywa lepiej: Android obsługuje HEIF od wersji 9, Windows 11 (22H2 i nowsze) otwiera HEIC od razu, a starszy Windows 10 wymaga doinstalowania rozszerzeń ze Sklepu, z których jedno bywa płatne. Ale to nie zmienia wniosku dla webu: żeby zdjęcie w HEIC dało się pokazać w internecie wszystkim, trzeba je najpierw skonwertować.

Gdzie zaczyna się realny problem

I to jest problem najbardziej codzienny z całej serii, bo dotyka nie tylko twórców stron, ale każdego, kto dostaje zdjęcia od użytkowników. Klient przysyła kilkaset fotografii z iPhone’a do wrzucenia na stronę — wszystkie w HEIC. Formularz na stronie odrzuca .heic jako „nieprawidłowy format”. Galeria pokazuje puste miejsca. Rozwiązaniem nie jest walka z formatem, tylko konwersja na wejściu: do JPEG, jeśli liczy się uniwersalna zgodność, albo do WebP czy AVIF, jeśli zdjęcie ma trafić na stronę — przy czym AVIF, jako najbliższy krewny HEIC, zachowuje przy tym najwięcej jakości. Warto też znać ustawienie po stronie iPhone’a (Ustawienia → Aparat → Formaty → „Najbardziej zgodne”), które każe telefonowi zapisywać od razu w JPEG.

To znów ta sama zasada, którą powtarza cała seria: właściwy format do właściwego kontekstu. HEIC świetnie sprawdza się jako format przechowywania na urządzeniu, ale na otwartym webie jest pułapką, dopóki go nie przekonwertujesz. Tak podchodzimy do tego w Studio iFOX — przyjęcie zdjęć od klienta obejmuje konwersję do formatów, które faktycznie zadziałają na stronie i pod Core Web Vitals, żeby zrzut zdjęć z telefonu nie kończył się połową pustych kafelków. A samą konwersję i optymalizację ułatwia ImgOpti v2.

Puenta

HEIC jest lustrzanym odbiciem AVIF: ta sama rodzina techniczna, odwrotny los w sieci. Genialny na sprzęcie Apple, oszczędny, bogaty w możliwości — i praktycznie niewidoczny na otwartym webie, bo postawiono go na opatentowanym kodeku, podczas gdy reszta świata wybrała wolną alternatywę. Dla Twoich zdjęć na telefonie to dobry format. Dla Twojej strony to zawsze etap pośredni: skonwertuj, a potem podaj to, co przeglądarka faktycznie umie pokazać. Bo nawet najlepiej skompresowane zdjęcie jest bezużyteczne, jeśli po drugiej stronie nikt nie potrafi go otworzyć.

Agent kończy, ale zadania nie wykonał

Agent kończy, ale zadania nie wykonał

Objawy Agent odpowiada: „Przygotowałem i wysłałem potwierdzenie do klienta." Potwierdzenie nie zostało wysłane. Albo: „Zaktualizowałem wszystkie rekordy" — zaktualizował trzy z dwunastu. Albo: „Nie znalazłem żadnych zamówień" — bo narzędzie zwróciło błąd, którego nikt...

Agent zrobił coś, o co nikt nie prosił

Agent zrobił coś, o co nikt nie prosił

Objawy Operacja, której nikt nie zlecił. Dane wysłane pod adres, którego nie ma w żadnej konfiguracji. Rekord zmieniony poza zakresem zadania. Odpowiedź, z której wynika, że agent dostał instrukcje od kogoś innego niż ty. Cecha wspólna: technicznie wszystko zadziałało...

Agent zrobił to samo dwa razy

Agent zrobił to samo dwa razy

Objawy Ten syndrom różni się od pozostałych jedną rzeczą: objaw widzi klient, nie ty. Trzy identyczne wiadomości w skrzynce. Dwa zamówienia zamiast jednego. Podwójne obciążenie. Duplikaty rekordów, które ktoś zauważa tydzień później. W twoim dzienniku wszystko wygląda...

Agent gubi wątek w długim zadaniu

Agent gubi wątek w długim zadaniu

Objawy Pierwsze kroki idą wzorowo. Po kilkunastu agent zaczyna się rozjeżdżać. Przestaje przestrzegać reguły z promptu systemowego, której trzymał się na początku. Zmienia format odpowiedzi w połowie zadania. Wraca do czegoś, co już ustalił, i ustala to inaczej....

Agent podaje dane, których nie ma

Agent podaje dane, których nie ma

Objawy Numer zamówienia w idealnym formacie, którego nie ma w bazie. Kwota, której w dokumencie nie ma. Nazwa pola API, które nigdy nie istniało. Cytat z regulaminu, brzmiący dokładnie jak reszta regulaminu i w nim nieobecny. Cecha wspólna wszystkich tych przypadków:...

Działał wczoraj, dziś nie działa

Działał wczoraj, dziś nie działa

Objawy Nic się nie wywala. Nie ma wyjątków, nie ma timeoutów, dziennik wygląda tak samo jak zawsze. Po prostu odpowiedzi są gorsze. Postacie, w jakich to się objawia: Jakość. Agent zaczyna pomijać kroki, które wcześniej wykonywał, albo odpowiada ogólniej. Format....

Agent wybiera złe narzędzie

Agent wybiera złe narzędzie

Objawy Agent odpowiada nie na to pytanie. Pobiera listę zamówień, gdy pytano o jedno konkretne. Odpowiada z pamięci, choć miał sprawdzić w bazie. Albo sięga po właściwe narzędzie i wpisuje w argumenty coś, czego nie da się użyć. Sygnał, który odróżnia ten syndrom od...

Agent kręci się w kółko

Agent kręci się w kółko

Objawy Agent wykonuje kolejne obroty pętli, nie zbliżając się do zakończenia zadania. W dzienniku widać jedną z trzech postaci. Powtórzenie. To samo narzędzie, te same argumenty, raz za razem — czasem dziesiątki razy pod rząd. Oscylacja. Agent wywołuje na przemian dwa...