Version: 1.6.0 (using KDE 3.5.5, Kubuntu (edgy) 4:3.5.5-0ubuntu2) Compiler: Target: i486-linux-gnu OS: Linux (i686) release 2.6.18.1-custom How to reproduce: - Take a GIF file, convert it to PNG (using gif2png or GIMP) - Open this PNG file, use the Contiguos Fill tool with color #ff00ff, click on the upper left pixel of the image. - Save as PNG (was using maximum compression) - Open the resulting PNG with any image viewer, zoom at the upper left pixels. They are corrupted with random data resulting in about 10 (sometimes more, sometimes less) gray pixels. See attached images for examples. I made a strange observation: I opened the GIF file in GIMP, converted to RGB instead of paletted colors, saved as PNG. I then did the above and noticed, that the resulting (still corrupted) PNG was paletted again. By the way, while trying to check, whether converting the GIF file to a TIFF file with GIMP, open this file with Krita and save it as a PNG helps, Krita crashed on opening the TIFF file.. (I'm going to report this crash separately with backtrace)
Created an attachment (id=18221) [details] My original GIF file
Created an attachment (id=18222) [details] PNG with corrupted pixels after saving it with Krita
SVN commit 598004 by berger: forward port of bug fix of saving indexes pngs CCBUG:136122 M +1 -1 kis_png_converter.cc --- trunk/koffice/filters/krita/png/kis_png_converter.cc #598003:598004 @@ -123,7 +123,7 @@ class KisPNGStream { public: - KisPNGStream(quint8* buf, quint32 depth ) : m_posinc(8),m_depth(depth), m_buf(buf) {}; + KisPNGStream(quint8* buf, quint32 depth ) : m_posinc(8),m_depth(depth), m_buf(buf) { *m_buf = 0;}; int nextValue() { if( m_posinc == 0)
SVN commit 598006 by berger: bug fix of saving indexes pngs BUG:136122 M +1 -1 kis_png_converter.cc --- branches/koffice/1.6/koffice/filters/krita/png/kis_png_converter.cc #598005:598006 @@ -123,7 +123,7 @@ class KisPNGStream { public: - KisPNGStream(Q_UINT8* buf, Q_UINT32 depth ) : m_posinc(8),m_depth(depth), m_buf(buf) {}; + KisPNGStream(Q_UINT8* buf, Q_UINT32 depth ) : m_posinc(8),m_depth(depth), m_buf(buf) { *m_buf = 0;}; int nextValue() { if( m_posinc == 0)
You need to log in before you can comment on or make changes to this bug.