Перейти до вмісту
Повернутися до блогу
усунення неполадок
26 лютого 2026 р.
GuruPDF Team
Час читання: 15 хв.

Чому конвертація зображень не працює на вашому комп’ютері (і як виправити кожну помилку)

HEIC не відкривається? ImageMagick видає «no decode delegate»? Python Pillow падає на RGBA? У цьому гайді зібрано всі найпоширеніші помилки конвертації зображень у Windows, macOS і Linux — з реальними кодами помилок, поясненнями та найпростішими способами виправлення.

Конвертація зображень між форматами звучить так, ніби це має бути просто — просто змінити розширення, так? Насправді тисячі користувачів щодня стикаються з незрозумілими помилками, пошкодженими результатами та збоями програм, коли намагаються конвертувати зображення на своїх локальних машинах. Тим часом онлайн-інструменти на кшталт GuruPDF виконують ті самі конвертації бездоганно за лічені секунди.

У цій статті ми детально розглянемо найпоширеніші помилки конвертації зображень, з якими люди стикаються у Windows, macOS та Linux, пояснимо, чому вони виникають, і покажемо, як повністю їх уникнути.

Найпоширеніші формати зображень (і чому вони не завжди «дружать» між собою)

Перш ніж перейти до помилок, розберімося з форматами, які створюють найбільше проблем:

Format Full Name Compression Transparency Typical Use
JPG/JPEG Об’єднана група експертів з фотографії (Joint Photographic Experts Group) З втратами Ні Фото, зображення для вебу
PNG Портативна мережева графіка (Portable Network Graphics) Без втрат Так Скріншоти, логотипи, графіка
WebP Web Picture Обидва Так Сучасна оптимізація для вебу
HEIC/HEIF Контейнер зображень високої ефективності (High Efficiency Image Container) З втратами/Без втрат Так Фото iPhone/iPad (iOS 11+)
AVIF Формат файлу зображення AV1 (AV1 Image File Format) З втратами/Без втрат Так Веб-формат нового покоління
SVG Масштабована векторна графіка (Scalable Vector Graphics) N/A (вектор) Так Іконки, ілюстрації, логотипи
TIFF Тегований формат файлу зображення (Tagged Image File Format) Без втрат Так Друк, сканування, архівування
BMP Bitmap Немає Ні Застарілий формат Windows
GIF Формат обміну графікою (Graphics Interchange Format) Без втрат 1-біт Анімації, проста графіка
EPS Інкапсульований PostScript (Encapsulated PostScript) N/A (вектор) Ні Дизайн для друку, професійна графіка
DJVU DjVu З втратами Ні Скановані документи, книги

Проблема? Більшість операційних систем і вбудованих інструментів «з коробки» підтримують лише кілька з них. Саме тут і починаються помилки.

Помилка №1: "Windows Photo Viewer Can't Open This Picture" (HEIC/AVIF/WebP)

Коди помилок і повідомлення, які ви можете побачити:

"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."

Чому це трапляється: Windows 10/11 не підтримує HEIC (типовий формат фото iPhone починаючи з iOS 11) або AVIF нативно. Потрібно встановити "HEIF Image Extensions" ($0.99) і "AV1 Video Extensions" з Microsoft Store. Підтримку WebP додали лише у Windows 10 версії 1809 і новіших.

Спроба локального виправлення: встановити пакети кодеків, використати сторонні переглядачі або спробувати інструменти командного рядка на кшталт ImageMagick:

bash
magick convert input.heic output.jpg

Але ImageMagick потребує встановлення додаткових delegate-бібліотек (libheif, libde265), що часто завершується помилкою:

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.

Просте рішення: завантажте ваші файли HEIC, AVIF або WebP на GuruPDF і конвертуйте їх у JPG або PNG одним кліком — без кодеків, без встановлень, без помилок.

Помилка №2: "No Decode Delegate" — в ImageMagick бракує кодеків

Повне повідомлення про помилку:

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.

Чому це трапляється: ImageMagick — один із найпопулярніших інструментів командного рядка для роботи із зображеннями, але він не включає декодери для всіх форматів «з коробки». Кожен формат потребує бібліотеки-«delegate»:

  • WebP потребує libwebp
  • HEIC потребує libheif + libde265
  • AVIF потребує libavif + dav1d
  • SVG потребує librsvg або Inkscape
  • EPS потребує Ghostscript (gs)
  • DJVU потребує djvulibre

Встановлювати це у Windows особливо болісно — треба завантажувати попередньо зібрані DLL, класти їх у правильну директорію й сподіватися, що версії збігаються.

У macOS:

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

Часто завершується помилкою:

Error: invalid option: --with-librsvg

Тому що Homebrew змінив структуру формул і ці опції прибрали.

У Linux (Ubuntu/Debian):

bash
sudo apt install imagemagick libheif-dev libwebp-dev

Може все одно не спрацювати, бо системний ImageMagick зібрано без цього delegate. Тоді доведеться компілювати з вихідних кодів:

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

Це може зайняти 10+ хвилин і конфліктувати з системними пакетами.

Помилка №3: "Not a JPEG File: Starts With 0x89" — неправильне розширення файлу

Повідомлення про помилки:

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

Чому це трапляється: хтось перейменував PNG-файл у .jpg (або навпаки). Розширення файлу не відповідає реальному двійковому вмісту. Байти 0x89 0x50 — це magic number PNG (перші байти кожного PNG — 89 50 4E 47). JPEG починається з FF D8 FF.

Це трапляється напрочуд часто, коли:

  • Завантажуєте зображення з вебу (сервери інколи виставляють неправильні заголовки Content-Type)
  • Пакетно перейменовуєте файли, не виконуючи реального конвертування
  • Поштові клієнти або месенджери непомітно змінюють розширення

Як визначити реальний формат:

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

У 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

Перевага онлайн-підходу: GuruPDF автоматично визначає реальний формат файлу незалежно від того, що написано в розширенні, і коректно його конвертує.

Помилка №4: Помилки конвертації в Python Pillow (PIL)

Поширені повідомлення про помилки:

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

Чому це трапляється: бібліотека Pillow у Python — стандартний вибір для програмної конвертації зображень, але вона має суттєві обмеження:

  1. Немає підтримки HEIC без pillow-heif (окрема інсталяція, яка вимагає системних бібліотек)
  2. RGBA у JPEG не збережеться, бо JPEG не підтримує прозорість — спершу треба конвертувати в RGB
  3. Палітровий режим (P) у JPEG потребує конвертації в RGB
  4. Великі зображення запускають захист від decompression bomb (функція безпеки)

Типовий обхідний код, з яким люди мучаться:

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)

Забагато «обв’язки», щоб конвертувати одне зображення. І це все одно не обробить HEIC, AVIF або WebP без додаткових бібліотек.

Помилка №5: macOS Preview — помилки "Could Not Be Exported"

Повідомлення про помилки:

"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."

Чому це трапляється: macOS Preview.app підтримує непоганий набір форматів, але старіші версії macOS (до Ventura) не підтримують WebP або AVIF нативно. Навіть у новіших версіях конвертація між певними комбінаціями форматів може тихо падати або давати пошкоджений результат.

Поширені помилки команд 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

Інструмент sips (Scriptable Image Processing System) вбудований у macOS, але підтримує лише обмежений набір форматів: JPEG, TIFF, PNG, GIF, BMP та PICT.

Помилка №6: Збої конвертації зображень у FFmpeg

Поширені помилки:

[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

Чому це трапляється: FFmpeg — насамперед інструмент для відео, і хоча він може конвертувати зображення, йому потрібна підтримка конкретних кодеків, зібрана під час компіляції. У багатьох системно встановлених версіях FFmpeg немає підтримки HEIC/AVIF/WebP.

Помилка №7: Помилки пакетної обробки в GIMP

Повідомлення про помилки в консолі 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

Чому це трапляється: GIMP потребує плагінів для новіших форматів. Плагін WebP може бути не встановлений, підтримка HEIF вимагає libheif, а підтримка AVIF потребує GIMP 2.10.22+. Пакетна обробка через Script-Fu або Python-Fu додає ще один рівень складності.

Помилка №8: "EXIF Data Lost" — знищення метаданих під час конвертації

Це не повідомлення про помилку — це «тиха» втрата даних, яку багато хто помічає занадто пізно.

Що втрачається:

  • Налаштування камери (діафрагма, витримка, ISO)
  • GPS-координати (де було зроблено фото)
  • Дата й час, коли зроблено фото
  • Інформація про авторські права
  • Колірний профіль (sRGB, Adobe RGB, ProPhoto RGB)
  • Орієнтація (інформація про поворот — через що фото можуть ставати «боком»)

Інструменти, які часто видаляють EXIF:

  • Windows Paint (видаляє все)
  • Багато онлайн-конвертерів (з міркувань «приватності», не попереджаючи)
  • ImageMagick (за замовчуванням видаляє, якщо ви не керуєте цим явно)
  • Python Pillow (потребує явної обробки EXIF через exif=img.info.get('exif', b''))

Проблема з орієнтацією особливо неприємна:

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

Деякі інструменти повертають зображення, але не оновлюють EXIF-тег, що призводить до подвійного повороту в одних переглядачах і коректного відображення в інших.

Помилка №9: Проблеми з колірним простором і ICC-профілями

Повідомлення про помилки:

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

Чому це трапляється: професійні зображення часто використовують колірні простори CMYK (для друку) або широкі гамутні профілі (Adobe RGB, ProPhoto RGB). Конвертація їх у веб-формати (які використовують sRGB) без коректного керування кольором дає «вимиті» або перенасичені кольори.

Що ви бачите: зображення, яке ідеально виглядає на екрані, після конвертації стає неоново-зеленим або брудно-коричневим. Або професійне фото повністю втрачає насиченість.

Технічна причина: CMYK має 4 канали (Cyan, Magenta, Yellow, Key/Black), тоді як RGB має 3 (Red, Green, Blue). Наївна конвертація не застосовує правильне перетворення кольору, через що кольори стають сильно некоректними.

Помилка №10: "File Too Large" або збої "Out of Memory"

Повідомлення про помилки:

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.

Чому це трапляється: TIFF на 100 MB при 300 DPI може мати 8000×6000 пікселів. У нестисненому вигляді в пам’яті це:

  • 8000 × 6000 × 4 байти (RGBA) = 192 MB RAM для одного зображення
  • Обробка (зміна розміру, конвертація формату) потребує 2–3× більше
  • Пакетна конвертація 10 таких зображень може спожити 4–6 GB RAM

Більшість десктопних застосунків і скриптів не обробляють зображення потоково — вони завантажують усе в пам’ять одразу.

Типові обмеження policy в ImageMagick часто надто жорсткі:

# /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"/>

Можливо, вам доведеться редагувати policy.xml, щоб збільшити ліміти, але для цього потрібні права адміністратора й розуміння конфігурації XML.

Помилка №11: Конвертація SVG у растр — кошмари з «рендерингом тексту»

Поширені проблеми:

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

Чому це трапляється: SVG-файли часто посилаються на шрифти, яких немає у вашій системі. Під час конвертації в PNG або JPG рушій рендерингу підставляє шрифт за замовчуванням, повністю змінюючи вигляд тексту. Градієнти, фільтри та вбудовані зображення в SVG додають ще більше потенційних точок відмови.

Приклад проблеми зі шрифтом:

Ваш SVG використовує font-family: "Helvetica Neue", але на вашому Linux-сервері є лише Liberation Sans. Результат виглядає трохи неправильно — інші інтервали між літерами, інша товщина, з’їханий текст.

Чому онлайн-конвертація просто працює (коли локальні інструменти — ні)

Після всіх цих помилок може виникнути питання: чому онлайн-інструменти справляються з конвертаціями так гладко?

1. Попередньо налаштоване середовище: онлайн-інструменти на кшталт GuruPDF працюють на серверах, де всі кодеки, бібліотеки та delegate уже встановлені й правильно налаштовані. Немає відсутнього libheif, неправильної policy ImageMagick або відсутнього Ghostscript.

2. Автоматичне визначення формату: сервер визначає реальний формат за двійковим заголовком (magic bytes), а не за розширенням. PNG, замаскований під .jpg? Без проблем.

3. Коректне керування кольором: серверні інструменти правильно обробляють ICC-профілі та конвертації колірних просторів, зберігаючи візуальний вигляд зображень.

4. Керування пам’яттю: хмарні сервери мають достатньо ресурсів і ефективно обробляють зображення, справляючись із великими TIFF та високою роздільною здатністю без нестачі пам’яті.

5. Завжди актуально: підтримка нових форматів на кшталт AVIF і HEIC додається на сервері. Вам не потрібно нічого оновлювати на комп’ютері.

6. Жодного болю з інсталяціями: жодних Python-оточень, Homebrew, «DLL hell», редагування policy.xml або компіляції з вихідних кодів.

Інструменти конвертації зображень GuruPDF

GuruPDF підтримує широкий спектр конвертацій форматів зображень — безкоштовно та прямо в браузері:

Із фото та зображень:

Векторні та спеціалізовані формати:

Інструменти оптимізації:

Висновок: припиніть боротися зі своїм комп’ютером

Якщо ви коли-небудь витратили 30 хвилин, намагаючись встановити libheif у Windows, або дивувалися, чому ваш CMYK TIFF виглядає зеленим після конвертації в JPG, або були спантеличені помилкою "no decode delegate" — ви не самі. Конвертація зображень має бути простою, але локальні інструменти роблять її невиправдано складною.

Наступного разу, коли вам потрібно конвертувати зображення, спробуйте спочатку завантажити його на GuruPDF. Він обробляє будь-які формати, зберігає якість і працює в будь-якому браузері на будь-якому пристрої. Жодних встановлень, жодних кодів помилок, жодного роздратування.

Ваш час краще витратити на реальну роботу, а не на дебаг delegate-бібліотек ImageMagick.