diff options
author | aavit <eirik.aavitsland@digia.com> | 2012-11-07 14:19:20 (GMT) |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-08 10:35:04 (GMT) |
commit | c309d424f45dc0e7b62fbbbabf20dbfe355f48a7 (patch) | |
tree | a5b0e6405652b4e2f2af98a9a90934c26ad91409 /tests | |
parent | 5ec6e2aca2950634d39195cc858bf062a2e2618d (diff) | |
download | Qt-c309d424f45dc0e7b62fbbbabf20dbfe355f48a7.zip Qt-c309d424f45dc0e7b62fbbbabf20dbfe355f48a7.tar.gz Qt-c309d424f45dc0e7b62fbbbabf20dbfe355f48a7.tar.bz2 |
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>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qimagereader/images/trans.gif | bin | 0 -> 3234 bytes | |||
-rw-r--r-- | tests/auto/qimagereader/tst_qimagereader.cpp | 9 |
2 files changed, 9 insertions, 0 deletions
diff --git a/tests/auto/qimagereader/images/trans.gif b/tests/auto/qimagereader/images/trans.gif Binary files differnew file mode 100644 index 0000000..e26398a --- /dev/null +++ b/tests/auto/qimagereader/images/trans.gif diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp index 7a2acee..14ce74b 100644 --- a/tests/auto/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/qimagereader/tst_qimagereader.cpp @@ -855,6 +855,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() |