Version: 1.2.0 (using KDE KDE 3.4.0) Installed from: Unlisted Binary Package OS: Linux When viewing an image via gwenview (ie, in the main app's full view, preview and thumbnails, and also embedded in konqueror), the image downloads and decodes/renders in progressive "blocks" as normal, but when finally drawn, there seems to be a second stage (smoothing or something, I suppose?) which then renders from top-to-bottom again. This stage incorrectly changes the colours, leaving most images with a yellowish tint. Occasionally, this stage will leave non-yellow bands, which have a artifacts of a bluish tint instead. When this banding occurs, covering the window with another window, then uncovering (ie, alt-tabbing) will re-draw this image in a different way, with the banding in a different place, and with different artifacts. Note that this is on a PPC Kubuntu "Hoary" distro (iBook2/500Mhz, Rage Mobility M3 chipset).
Created attachment 11904 [details] screenshot of rendering bug
Note: this also happens on the PNG attachment I just submitted (though apparently not on smaller PNGs, or indeed smaller JPGs). When I choose the embedded image viewer component rather than gwenview's in konqueror, all of these images display just fine.
This bug has been fixed in version 1.2.91. If you prefer to use 1.2.0, apply this patch on gvimageutils/scale.cpp : Index: scale.cpp =================================================================== --- scale.cpp (revision 403496) +++ scale.cpp (revision 403497) @@ -944,10 +944,17 @@ // FIXME: replace with mRed, etc... These work on pointers to pixels, not // pixel values +#if Q_BYTE_ORDER == Q_BIG_ENDIAN +#define A_VAL(p) ((unsigned char *)(p))[0] +#define R_VAL(p) ((unsigned char *)(p))[1] +#define G_VAL(p) ((unsigned char *)(p))[2] +#define B_VAL(p) ((unsigned char *)(p))[3] +#elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN #define A_VAL(p) ((unsigned char *)(p))[3] #define R_VAL(p) ((unsigned char *)(p))[2] #define G_VAL(p) ((unsigned char *)(p))[1] #define B_VAL(p) ((unsigned char *)(p))[0] +#endif #define INV_XAP (256 - xapoints[x]) #define XAP (xapoints[x])