gdk-pixbuf: can't load JPEGs
Tontyna opened this issue · 2 comments
Since updating from gtk3-runtime-3.22.26-2017-11-15-ts-win64 to gtk3-runtime-3.22.28-2018-02-20-ts-win64 GdkPixbuf doesn't handle JPEGs anymore.
Loading a JPEG via Python/cairocffi fails with the following error:
cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Unable to load image-loading module: C:\utils\GTK3-RuntimeX64\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll:
'C:\utils\GTK3-RuntimeX64\lib\gdk-pixbuf-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll':
Das angegebene Modul wurde nicht gefunden
The libpixbufloader-jpeg.dll
is at the above-mentiond location. So it's either corrupt or incompatible or something else is missing.
Had a look at ./lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
, everything looked ok.
Had another look at loaders.cache
from gtk3-runtime-3.22.26, where JPEGs work just fine. Wondered why because there's no entry neither for JPEGs nor for PNGs....
Removed the entry for JPEG.
The error when loading a JPEG turned into:
Failed to load image at "file:///C:/www/examples/DSCI2481.JPG"
(Pixbuf error: Unrecognized image file format
Run gdk-pixbuf-query-loaders.exe
, located in the bin
dir, to rebuild the loaders.cache
file. Got message boxes telling me that libjpeg-8.dll
and libjasper-4.dll
are missing.
Indeed, there is neither a libjpeg-8.dll
nor a libjasper-4.dll
in the GTK3-Runtime bin path. And not in my %PATH%
, too.
Was lucky and found a libjpeg-8.dll
somewhere else on my hard drive and copied it into the bin
folder.
Re-run gdk-pixbuf-query-loaders.exe
and got the entries for JPEG and TIFF back.
JPEG-Problem solved.
Suggestion: Please include
- libjpeg-8.dll
- libjapser-4.dll
in the next release.
I really wonder why in the previous release gdk-pixbuf-2.36.11 (same version number!) handled JPEGs without grumbles and without libjpeg...
Last but not least: Thank you very much for the GTK-for-Windows-Runtime-Environment. Unzip, set PATH, use it. Great.
Many thanks for reporting this issue. It appears to be related to this commit. Looks like gdi is now used only when there is no corresponding loader for those formats available.
I will make a new release this week with the required dlls.
Wow, that was incredibly fast -- thanks!