summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image/qimagereader
diff options
context:
space:
mode:
authoraavit <eirik.aavitsland@digia.com>2012-11-07 15:19:20 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-09 16:07:51 +0100
commitd91c1422a9d0b96172fb13da5a179688b590d125 (patch)
tree9aff422dd03654899306ec0f7099a4c268881a6d /tests/auto/gui/image/qimagereader
parentf4a8e940eda1904ed2fba247c1d2752106ccc5c9 (diff)
Fix GIF image decoding: do not zero transparent pixels
For the special transparent color index, the decoder would skip writing anything out (thus leaving the pixels at 0 rgba value). Although correct for later frames, for the initial frame this would loose the color information for such pixels (which one otherwise could have made visible e.g. by converting then image to an alpha-less image format). Change-Id: I316cefce8f21797feedebfbf98296ad84eaa4b99 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> (cherry picked from qt/c309d424f45dc0e7b62fbbbabf20dbfe355f48a7) Reviewed-by: aavit <eirik.aavitsland@digia.com>
Diffstat (limited to 'tests/auto/gui/image/qimagereader')
-rw-r--r--tests/auto/gui/image/qimagereader/images/trans.gifbin0 -> 3234 bytes
-rw-r--r--tests/auto/gui/image/qimagereader/tst_qimagereader.cpp9
2 files changed, 9 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qimagereader/images/trans.gif b/tests/auto/gui/image/qimagereader/images/trans.gif
new file mode 100644
index 0000000000..e26398af53
--- /dev/null
+++ b/tests/auto/gui/image/qimagereader/images/trans.gif
Binary files differ
diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
index 8965cbd2fb..57aaeb965e 100644
--- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
@@ -756,6 +756,15 @@ void tst_QImageReader::gifHandlerBugs()
QVERIFY(io.canRead());
QCOMPARE(io.loopCount(), -1);
}
+
+ // Check that pixels with the transparent color are transparent but not zeroed
+ {
+ QImageReader io(prefix + "trans.gif");
+ QVERIFY(io.canRead());
+ QImage im = io.read();
+ QCOMPARE(im.pixel(0,0), qRgba(0x3f, 0xff, 0x7f, 0x00));
+ QCOMPARE(im.pixel(10,10), qRgba(0x3f, 0xff, 0x7f, 0x00));
+ }
}
void tst_QImageReader::animatedGif()