Przejdź do treści
Wróć do bloga
rozwiązywanie problemów
26 lutego 2026
GuruPDF Team
15 min czytania

Dlaczego konwersja obrazów nie działa na Twoim komputerze (i jak naprawić każdy błąd)

HEIC się nie otwiera? ImageMagick „no decode delegate”? Python Pillow wywala się na RGBA? Ten poradnik omawia wszystkie najczęstsze błędy konwersji obrazów w Windows, macOS i Linux — wraz z prawdziwymi kodami błędów, wyjaśnieniami i najprostszym sposobem naprawy.

Konwertowanie obrazów między formatami brzmi jak coś prostego — wystarczy zmienić rozszerzenie, prawda? W rzeczywistości tysiące użytkowników każdego dnia wpada na niejasne błędy, uszkodzone wyniki i awarie programów podczas próby konwersji obrazów na swoich komputerach. Tymczasem narzędzia online, takie jak GuruPDF, wykonują dokładnie te same konwersje bezbłędnie w kilka sekund.

W tym artykule szczegółowo omawiamy najczęstsze błędy konwersji obrazów, z jakimi ludzie spotykają się w systemach Windows, macOS i Linux, wyjaśniamy, dlaczego się pojawiają, oraz pokazujemy, jak całkowicie ich uniknąć.

Najpopularniejsze formaty obrazów (i dlaczego nie zawsze się dogadują)

Zanim przejdziemy do błędów, przyjrzyjmy się formatom, które sprawiają najwięcej problemów:

Format Pełna nazwa Kompresja Przezroczystość Typowe zastosowanie
JPG/JPEG Joint Photographic Experts Group Stratna Nie Zdjęcia, obrazy do internetu
PNG Portable Network Graphics Bezstratna Tak Zrzuty ekranu, logotypy, grafiki
WebP Web Picture Obie Tak Nowoczesna optymalizacja dla WWW
HEIC/HEIF High Efficiency Image Container Stratna/Bezstratna Tak Zdjęcia z iPhone/iPad (iOS 11+)
AVIF AV1 Image File Format Stratna/Bezstratna Tak Format WWW nowej generacji
SVG Scalable Vector Graphics N/A (wektor) Tak Ikony, ilustracje, logotypy
TIFF Tagged Image File Format Bezstratna Tak Druk, skanowanie, archiwizacja
BMP Bitmap Brak Nie Starszy format Windows
GIF Graphics Interchange Format Bezstratna 1-bit Animacje, proste grafiki
EPS Encapsulated PostScript N/A (wektor) Nie Projekty do druku, grafika profesjonalna
DJVU DjVu Stratna Nie Zeskanowane dokumenty, książki

Problem? Większość systemów operacyjnych i narzędzi wbudowanych obsługuje natywnie tylko kilka z nich. I tu zaczynają się błędy.

Błąd #1: „Windows Photo Viewer Can't Open This Picture” (HEIC/AVIF/WebP)

Kody i komunikaty błędów, które możesz zobaczyć:

"Windows Photo Viewer can't open this picture because either Photo Viewer
doesn't support this file format, or you don't have the latest updates."
"It looks like we don't support this file format."
— Microsoft Photos app
"0xc00d5212: This item was encoded in a format that's not supported."

Dlaczego tak się dzieje: Windows 10/11 nie obsługuje natywnie HEIC (domyślny format zdjęć z iPhone od iOS 11) ani AVIF. Trzeba zainstalować „HEIF Image Extensions” (0,99 USD) oraz „AV1 Video Extensions” ze sklepu Microsoft Store. Obsługa WebP została dodana dopiero w Windows 10 w wersji 1809 i nowszych.

Lokalna próba naprawy: instalacja paczek kodeków, użycie zewnętrznych przeglądarek albo narzędzi wiersza poleceń, takich jak ImageMagick:

bash
magick convert input.heic output.jpg

Ale ImageMagick wymaga doinstalowania dodatkowych delegate’ów (libheif, libde265), co często kończy się błędem:

convert: delegate failed `"dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1911.
convert: no decode delegate for this image format `HEIC' @ error/constitute.c/ReadImage/746.

Proste rozwiązanie: prześlij pliki HEIC, AVIF lub WebP do GuruPDF i przekonwertuj je do JPG lub PNG jednym kliknięciem — bez kodeków, bez instalacji, bez błędów.

Błąd #2: „No Decode Delegate” — brakujące kodeki w ImageMagick

Pełny komunikat błędu:

convert: no decode delegate for this image format `WEBP' @ error/constitute.c/ReadImage/746.
convert: no decode delegate for this image format `SVG' @ error/constitute.c/ReadImage/746.
convert: no decode delegate for this image format `EPS' @ error/constitute.c/ReadImage/746.

Dlaczego tak się dzieje: ImageMagick to jedno z najpopularniejszych narzędzi do obrazów w wierszu poleceń, ale nie zawiera od razu dekoderów dla wszystkich formatów. Każdy format wymaga biblioteki „delegate”:

  • WebP wymaga libwebp
  • HEIC wymaga libheif + libde265
  • AVIF wymaga libavif + dav1d
  • SVG wymaga librsvg lub Inkscape
  • EPS wymaga Ghostscript (gs)
  • DJVU wymaga djvulibre

Instalowanie tego w Windows jest szczególnie uciążliwe — trzeba pobrać wstępnie skompilowane DLL, umieścić je we właściwym katalogu i liczyć, że wersje będą kompatybilne.

W macOS:

bash
brew install imagemagick --with-librsvg --with-libheif --with-webp

Często kończy się błędem:

Error: invalid option: --with-librsvg

Ponieważ Homebrew zmienił strukturę formuł i te opcje zostały usunięte.

W Linux (Ubuntu/Debian):

bash
sudo apt install imagemagick libheif-dev libwebp-dev

Może nadal nie zadziałać, bo systemowy ImageMagick został skompilowany bez delegate’a. Trzeba skompilować ze źródeł:

bash
./configure --with-heic=yes --with-webp=yes
make && sudo make install

Co może zająć ponad 10 minut i powodować konflikty z pakietami systemowymi.

Błąd #3: „Not a JPEG File: Starts With 0x89” — błędne rozszerzenie pliku

Komunikaty błędów:

Not a JPEG file: starts with 0x89 0x50
Corrupt JPEG data: premature end of data segment
libpng error: Not a PNG file
IHDR: CRC error

Dlaczego tak się dzieje: ktoś zmienił nazwę pliku PNG na .jpg (albo odwrotnie). Rozszerzenie nie odpowiada rzeczywistej zawartości binarnej. Bajty 0x89 0x50 to magic number PNG (pierwsze bajty każdego pliku PNG to 89 50 4E 47). Pliki JPEG zaczynają się od FF D8 FF.

Zdarza się to zaskakująco często, gdy:

  • pobierasz obrazy z internetu (serwery czasem ustawiają błędne nagłówki Content-Type)
  • masowo zmieniasz nazwy plików bez faktycznej konwersji
  • klient poczty lub komunikator po cichu zmienia rozszerzenia

Jak rozpoznać prawdziwy format:

bash
file mysterious-image.jpg
# Output: mysterious-image.jpg: PNG image data, 1920 x 1080, 8-bit/color RGBA

W Windows (PowerShell):

powershell
Format-Hex -Path .\image.jpg -Count 4
# If you see 89 50 4E 47, it's actually a PNG
# If you see FF D8 FF, it's a real JPEG

Przewaga online: GuruPDF automatycznie wykrywa faktyczny format pliku niezależnie od tego, co mówi rozszerzenie, i konwertuje go poprawnie.

Błąd #4: Błędy konwersji w Python Pillow (PIL)

Częste komunikaty błędów:

python
PIL.UnidentifiedImageError: cannot identify image file 'photo.heic'
python
OSError: cannot write mode RGBA as JPEG
python
OSError: cannot write mode P as JPEG
python
PIL.Image.DecompressionBombError: Image size (178956970 pixels) exceeds limit of 89478485 pixels

Dlaczego tak się dzieje: biblioteka Pillow w Pythonie to standard do programistycznej konwersji obrazów, ale ma istotne ograniczenia:

  1. Brak obsługi HEIC bez pillow-heif (osobna instalacja wymagająca bibliotek systemowych)
  2. RGBA do JPEG nie działa, bo JPEG nie obsługuje przezroczystości — najpierw trzeba przekonwertować do RGB
  3. Tryb palety (P) do JPEG wymaga konwersji do RGB
  4. Duże obrazy uruchamiają ochronę przed „decompression bomb” (funkcja bezpieczeństwa)

Typowy kod obejścia, z którym ludzie się męczą:

python
from PIL import Image

img = Image.open("photo.png")

# Handle transparency for JPEG output
if img.mode in ('RGBA', 'LA', 'P'):
    background = Image.new('RGB', img.size, (255, 255, 255))
    if img.mode == 'P':
        img = img.convert('RGBA')
    background.paste(img, mask=img.split()[-1])
    img = background

img.save("photo.jpg", "JPEG", quality=95)

To mnóstwo boilerplate’u, żeby przekonwertować jeden obraz. A i tak nie obsłuży HEIC, AVIF ani WebP bez dodatkowych bibliotek.

Błąd #5: macOS Preview — błędy „Could Not Be Exported”

Komunikaty błędów:

"The document 'image.webp' could not be exported as 'image.png'."
"The file isn't compatible with QuickLook."
"The document could not be opened. The file format is not supported."

Dlaczego tak się dzieje: macOS Preview.app obsługuje całkiem sporo formatów, ale starsze wersje macOS (przed Ventura) nie wspierają natywnie WebP ani AVIF. Nawet w nowszych wersjach konwersja między niektórymi kombinacjami formatów potrafi „po cichu” się nie udać albo dać uszkodzony wynik.

Typowe błędy polecenia macOS sips:

bash
sips -s format jpeg input.webp --out output.jpg
# Error: Unable to render input.webp as JPEG
# Error 4: no such operation
bash
sips -s format png input.svg --out output.png
# Error: Unable to render SVG

Narzędzie sips (Scriptable Image Processing System) jest wbudowane w macOS, ale obsługuje ograniczony zestaw formatów: JPEG, TIFF, PNG, GIF, BMP oraz PICT.

Błąd #6: Niepowodzenia konwersji obrazów w FFmpeg

Częste błędy:

[image2 @ 0x...] Could not open file : output.webp
av_interleaved_write_frame(): Invalid argument
Avi/ASF stream 0 is not an image stream. Use -c:v png/mjpeg/... to encode it.
[svg @ 0x...] Cannot determine type of input
[heic @ 0x...] Unknown decoder 'heic'
Discarding frame which has a bad interlace type

Dlaczego tak się dzieje: FFmpeg to przede wszystkim narzędzie wideo. Choć potrafi konwertować obrazy, wymaga odpowiedniej obsługi kodeków skompilowanej w programie. Wiele wersji FFmpeg instalowanych z systemu nie ma wsparcia dla HEIC/AVIF/WebP.

Błąd #7: Błędy przetwarzania wsadowego w GIMP

Komunikaty błędów w konsoli Script-Fu:

Error: ( : 1) eval: unbound variable: file-webp-save
batch command experienced an execution error:
Error: Procedure 'file-heif-load' not found
(gimp:12345): LibGfig-WARNING **: Bad path: /home/user/.gimp-2.10/gfig

Dlaczego tak się dzieje: GIMP wymaga wtyczek dla nowszych formatów. Wtyczka WebP może nie być zainstalowana, obsługa HEIF wymaga libheif, a obsługa AVIF wymaga GIMP 2.10.22+. Przetwarzanie wsadowe przez Script-Fu lub Python-Fu dokłada kolejną warstwę złożoności.

Błąd #8: „EXIF Data Lost” — niszczenie metadanych podczas konwersji

To nie jest komunikat błędu — to cicha utrata danych, której wiele osób nie zauważa, dopóki nie jest za późno.

Co ginie:

  • Ustawienia aparatu (przysłona, czas migawki, ISO)
  • Współrzędne GPS (gdzie zrobiono zdjęcie)
  • Data i godzina wykonania zdjęcia
  • Informacje o prawach autorskich
  • Profil kolorów (sRGB, Adobe RGB, ProPhoto RGB)
  • Orientacja (informacja o obrocie — skutkująca zdjęciami „bokiem”)

Narzędzia, które często usuwają EXIF:

  • Windows Paint (usuwa wszystko)
  • Wiele konwerterów online (z powodów „prywatności”, bez informowania)
  • ImageMagick (usuwa domyślnie, chyba że jawnie sterujesz tym flagą -strip)
  • Python Pillow (wymaga jawnej obsługi EXIF przez exif=img.info.get('exif', b''))

Problem z orientacją bywa szczególnie dotkliwy:

Warning: JPEG file has EXIF orientation tag but image data is not rotated.
Auto-rotating image based on EXIF orientation.

Niektóre narzędzia obracają obraz, ale nie aktualizują tagu EXIF, co prowadzi do podwójnego obrotu w niektórych przeglądarkach i poprawnego wyświetlania w innych.

Błąd #9: Problemy z przestrzenią barw i profilami ICC

Komunikaty błędów:

lcms: not a valid ICC profile
color profile 'sRGB IEC61966-2.1' is not compatible with 'CMYK'
libpng warning: iCCP: known incorrect sRGB profile
JCS_CMYK JPEG image passed to JFIF converter

Dlaczego tak się dzieje: profesjonalne obrazy często używają przestrzeni CMYK (do druku) albo profili o szerokim gamucie (Adobe RGB, ProPhoto RGB). Konwertowanie ich do formatów internetowych (które używają sRGB) bez właściwego zarządzania kolorem powoduje wyblakłe lub przesycone kolory.

Co widzisz: obraz, który wygląda idealnie na ekranie, po konwersji robi się neonowo-zielony albo błotnisto-brązowy. Albo profesjonalne zdjęcie traci całą żywotność barw.

Przyczyna techniczna: CMYK ma 4 kanały koloru (Cyan, Magenta, Yellow, Key/Black), a RGB ma 3 (Red, Green, Blue). Naiwna konwersja nie wykonuje poprawnej transformacji kolorów, przez co barwy są skrajnie błędne.

Błąd #10: Awarie „File Too Large” lub „Out of Memory”

Komunikaty błędów:

java.lang.OutOfMemoryError: Java heap space
Traceback: MemoryError
Fatal error: Allowed memory size of 134217728 bytes exhausted
convert: cache resources exhausted `input.tiff' @ error/cache.c/OpenPixelCache/3945.
convert: width or height exceeds limit `input.tiff' @ error/cache.c/OpenPixelCache/3912.

Dlaczego tak się dzieje: plik TIFF 100 MB w 300 DPI może mieć 8000×6000 pikseli. Nieskompresowany w pamięci to:

  • 8000 × 6000 × 4 bajty (RGBA) = 192 MB RAM na jeden obraz
  • przetwarzanie (zmiana rozmiaru, konwersja formatu) wymaga 2–3× tyle
  • wsadowa konwersja 10 takich obrazów może zużyć 4–6 GB RAM

Większość aplikacji desktopowych i skryptów nie przetwarza obrazów strumieniowo — ładuje wszystko do pamięci naraz.

Domyślne limity polityk ImageMagick są często zbyt restrykcyjne:

# /etc/ImageMagick-6/policy.xml
<policy domain="resource" name="memory" value="256MiB"/>
<policy domain="resource" name="disk" value="1GiB"/>
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>

Może być konieczna edycja policy.xml, aby zwiększyć te limity, ale wymaga to uprawnień administratora i zrozumienia konfiguracji XML.

Błąd #11: Konwersja SVG do rastra — koszmary „renderowania tekstu”

Częste problemy:

Pango-WARNING **: failed to choose a font, expect ugly output
rsvg-convert: error: Error reading SVG: "Unexpected end of XML input"
cairo-WARNING: cairo_surface_destroy: Cannot modify an already-finished surface

Dlaczego tak się dzieje: pliki SVG często odwołują się do fontów, których nie ma w systemie. Podczas konwersji do PNG lub JPG silnik renderujący podstawia font domyślny, całkowicie zmieniając wygląd tekstu. Gradienty, filtry i osadzone obrazy w SVG dokładają kolejne potencjalne punkty awarii.

Przykład problemu z fontami:

Twoje SVG używa font-family: "Helvetica Neue", ale serwer Linux ma tylko Liberation Sans. Wynik wygląda subtelnie źle — inne odstępy między literami, inna grubość, przesunięte wyrównanie.

Dlaczego konwersja online po prostu działa (gdy narzędzia lokalne nie)

Po przejściu przez te wszystkie błędy możesz się zastanawiać: dlaczego narzędzia online robią to tak płynnie?

1. Wstępnie skonfigurowane środowisko: narzędzia online, takie jak GuruPDF, działają na serwerach, gdzie każdy kodek, biblioteka i delegate są już zainstalowane i poprawnie skonfigurowane. Nie brakuje libheif, nie ma błędnej polityki ImageMagick, nie brakuje Ghostscript.

2. Automatyczne wykrywanie formatu: serwer identyfikuje prawdziwy format pliku po nagłówku binarnym (magic bytes), a nie po rozszerzeniu. PNG podszywający się pod .jpg? Żaden problem.

3. Właściwe zarządzanie kolorem: narzędzia po stronie serwera poprawnie obsługują profile ICC i konwersje przestrzeni barw, zachowując wygląd obrazów.

4. Zarządzanie pamięcią: serwery w chmurze mają duże zasoby i przetwarzają obrazy wydajnie, obsługując duże pliki TIFF i skany w wysokiej rozdzielczości bez braku pamięci.

5. Zawsze aktualne: wsparcie dla nowych formatów, takich jak AVIF i HEIC, dodaje się po stronie serwera. Nie musisz nic aktualizować na komputerze.

6. Brak problemów z instalacją: bez środowisk Pythona, bez Homebrew, bez piekła DLL, bez edycji policy.xml, bez kompilowania ze źródeł.

Narzędzia do konwersji obrazów GuruPDF

GuruPDF obsługuje szeroki zakres konwersji formatów obrazów — za darmo i w przeglądarce:

Ze zdjęć i obrazów:

Formaty wektorowe i specjalistyczne:

Narzędzia optymalizacji:

Podsumowanie: przestań walczyć z komputerem

Jeśli kiedykolwiek spędziłeś 30 minut, próbując zainstalować libheif w Windows, albo zastanawiałeś się, dlaczego Twój CMYK TIFF wygląda na zielony po konwersji do JPG, albo zdziwił Cię błąd „no decode delegate” — nie jesteś sam. Konwersja obrazów powinna być prosta, ale narzędzia lokalne niepotrzebnie ją komplikują.

Następnym razem, gdy będziesz musiał przekonwertować obraz, spróbuj najpierw przesłać go do GuruPDF. Obsługuje każdy format, zachowuje jakość i działa w dowolnej przeglądarce na każdym urządzeniu. Bez instalacji, bez kodów błędów, bez frustracji.

Twój czas lepiej poświęcić na właściwą pracę, a nie na debugowanie delegate’ów ImageMagick.