vcl/qa/cppunit/png/PngFilterTest.cxx | 1445 +++++++++++++++++++++++++++++++++++ vcl/qa/cppunit/png/data/basi0g01.png |binary vcl/qa/cppunit/png/data/basi0g02.png |binary vcl/qa/cppunit/png/data/basi0g04.png |binary vcl/qa/cppunit/png/data/basi0g08.png |binary vcl/qa/cppunit/png/data/basi0g16.png |binary vcl/qa/cppunit/png/data/basi2c08.png |binary vcl/qa/cppunit/png/data/basi2c16.png |binary vcl/qa/cppunit/png/data/basi3p01.png |binary vcl/qa/cppunit/png/data/basi3p02.png |binary vcl/qa/cppunit/png/data/basi3p04.png |binary vcl/qa/cppunit/png/data/basi3p08.png |binary vcl/qa/cppunit/png/data/basi4a08.png |binary vcl/qa/cppunit/png/data/basi4a16.png |binary vcl/qa/cppunit/png/data/basi6a08.png |binary vcl/qa/cppunit/png/data/basi6a16.png |binary vcl/qa/cppunit/png/data/basn0g01.png |binary vcl/qa/cppunit/png/data/basn0g02.png |binary vcl/qa/cppunit/png/data/basn0g04.png |binary vcl/qa/cppunit/png/data/basn0g08.png |binary vcl/qa/cppunit/png/data/basn0g16.png |binary vcl/qa/cppunit/png/data/basn2c08.png |binary vcl/qa/cppunit/png/data/basn2c16.png |binary vcl/qa/cppunit/png/data/basn3p01.png |binary vcl/qa/cppunit/png/data/basn3p02.png |binary vcl/qa/cppunit/png/data/basn3p04.png |binary vcl/qa/cppunit/png/data/basn3p08.png |binary vcl/qa/cppunit/png/data/basn4a08.png |binary vcl/qa/cppunit/png/data/basn4a16.png |binary vcl/qa/cppunit/png/data/basn6a08.png |binary vcl/qa/cppunit/png/data/basn6a16.png |binary vcl/qa/cppunit/png/data/bgai4a08.png |binary vcl/qa/cppunit/png/data/bgai4a16.png |binary vcl/qa/cppunit/png/data/bgan6a08.png |binary vcl/qa/cppunit/png/data/bgan6a16.png |binary vcl/qa/cppunit/png/data/bgbn4a08.png |binary vcl/qa/cppunit/png/data/bggn4a16.png |binary vcl/qa/cppunit/png/data/bgwn6a08.png |binary vcl/qa/cppunit/png/data/bgyn6a16.png |binary vcl/qa/cppunit/png/data/ccwn2c08.png |binary vcl/qa/cppunit/png/data/ccwn3p08.png |binary vcl/qa/cppunit/png/data/cdfn2c08.png |binary vcl/qa/cppunit/png/data/cdhn2c08.png |binary vcl/qa/cppunit/png/data/cdsn2c08.png |binary vcl/qa/cppunit/png/data/cdun2c08.png |binary vcl/qa/cppunit/png/data/ch1n3p04.png |binary vcl/qa/cppunit/png/data/ch2n3p08.png |binary vcl/qa/cppunit/png/data/cm0n0g04.png |binary vcl/qa/cppunit/png/data/cm7n0g04.png |binary vcl/qa/cppunit/png/data/cm9n0g04.png |binary vcl/qa/cppunit/png/data/cs3n2c16.png |binary vcl/qa/cppunit/png/data/cs3n3p08.png |binary vcl/qa/cppunit/png/data/cs5n2c08.png |binary vcl/qa/cppunit/png/data/cs5n3p08.png |binary vcl/qa/cppunit/png/data/cs8n2c08.png |binary vcl/qa/cppunit/png/data/cs8n3p08.png |binary vcl/qa/cppunit/png/data/ct0n0g04.png |binary vcl/qa/cppunit/png/data/ct1n0g04.png |binary vcl/qa/cppunit/png/data/cten0g04.png |binary vcl/qa/cppunit/png/data/ctfn0g04.png |binary vcl/qa/cppunit/png/data/ctgn0g04.png |binary vcl/qa/cppunit/png/data/cthn0g04.png |binary vcl/qa/cppunit/png/data/ctjn0g04.png |binary vcl/qa/cppunit/png/data/ctzn0g04.png |binary vcl/qa/cppunit/png/data/exif2c08.png |binary vcl/qa/cppunit/png/data/f00n0g08.png |binary vcl/qa/cppunit/png/data/f00n2c08.png |binary vcl/qa/cppunit/png/data/f01n0g08.png |binary vcl/qa/cppunit/png/data/f01n2c08.png |binary vcl/qa/cppunit/png/data/f02n0g08.png |binary vcl/qa/cppunit/png/data/f02n2c08.png |binary vcl/qa/cppunit/png/data/f03n0g08.png |binary vcl/qa/cppunit/png/data/f03n2c08.png |binary vcl/qa/cppunit/png/data/f04n0g08.png |binary vcl/qa/cppunit/png/data/f04n2c08.png |binary vcl/qa/cppunit/png/data/f99n0g04.png |binary vcl/qa/cppunit/png/data/g03n0g16.png |binary vcl/qa/cppunit/png/data/g03n2c08.png |binary vcl/qa/cppunit/png/data/g03n3p04.png |binary vcl/qa/cppunit/png/data/g04n0g16.png |binary vcl/qa/cppunit/png/data/g04n2c08.png |binary vcl/qa/cppunit/png/data/g04n3p04.png |binary vcl/qa/cppunit/png/data/g05n0g16.png |binary vcl/qa/cppunit/png/data/g05n2c08.png |binary vcl/qa/cppunit/png/data/g05n3p04.png |binary vcl/qa/cppunit/png/data/g07n0g16.png |binary vcl/qa/cppunit/png/data/g07n2c08.png |binary vcl/qa/cppunit/png/data/g07n3p04.png |binary vcl/qa/cppunit/png/data/g10n0g16.png |binary vcl/qa/cppunit/png/data/g10n2c08.png |binary vcl/qa/cppunit/png/data/g10n3p04.png |binary vcl/qa/cppunit/png/data/g25n0g16.png |binary vcl/qa/cppunit/png/data/g25n2c08.png |binary vcl/qa/cppunit/png/data/g25n3p04.png |binary vcl/qa/cppunit/png/data/oi1n0g16.png |binary vcl/qa/cppunit/png/data/oi1n2c16.png |binary vcl/qa/cppunit/png/data/oi2n0g16.png |binary vcl/qa/cppunit/png/data/oi2n2c16.png |binary vcl/qa/cppunit/png/data/oi4n0g16.png |binary vcl/qa/cppunit/png/data/oi4n2c16.png |binary vcl/qa/cppunit/png/data/oi9n0g16.png |binary vcl/qa/cppunit/png/data/oi9n2c16.png |binary vcl/qa/cppunit/png/data/pp0n2c16.png |binary vcl/qa/cppunit/png/data/pp0n6a08.png |binary vcl/qa/cppunit/png/data/ps1n0g08.png |binary vcl/qa/cppunit/png/data/ps1n2c16.png |binary vcl/qa/cppunit/png/data/ps2n0g08.png |binary vcl/qa/cppunit/png/data/ps2n2c16.png |binary vcl/qa/cppunit/png/data/s01i3p01.png |binary vcl/qa/cppunit/png/data/s01n3p01.png |binary vcl/qa/cppunit/png/data/s02i3p01.png |binary vcl/qa/cppunit/png/data/s02n3p01.png |binary vcl/qa/cppunit/png/data/s03i3p01.png |binary vcl/qa/cppunit/png/data/s03n3p01.png |binary vcl/qa/cppunit/png/data/s04i3p01.png |binary vcl/qa/cppunit/png/data/s04n3p01.png |binary vcl/qa/cppunit/png/data/s05i3p02.png |binary vcl/qa/cppunit/png/data/s05n3p02.png |binary vcl/qa/cppunit/png/data/s06i3p02.png |binary vcl/qa/cppunit/png/data/s06n3p02.png |binary vcl/qa/cppunit/png/data/s07i3p02.png |binary vcl/qa/cppunit/png/data/s07n3p02.png |binary vcl/qa/cppunit/png/data/s08i3p02.png |binary vcl/qa/cppunit/png/data/s08n3p02.png |binary vcl/qa/cppunit/png/data/s09i3p02.png |binary vcl/qa/cppunit/png/data/s09n3p02.png |binary vcl/qa/cppunit/png/data/s32i3p04.png |binary vcl/qa/cppunit/png/data/s32n3p04.png |binary vcl/qa/cppunit/png/data/s33i3p04.png |binary vcl/qa/cppunit/png/data/s33n3p04.png |binary vcl/qa/cppunit/png/data/s34i3p04.png |binary vcl/qa/cppunit/png/data/s34n3p04.png |binary vcl/qa/cppunit/png/data/s35i3p04.png |binary vcl/qa/cppunit/png/data/s35n3p04.png |binary vcl/qa/cppunit/png/data/s36i3p04.png |binary vcl/qa/cppunit/png/data/s36n3p04.png |binary vcl/qa/cppunit/png/data/s37i3p04.png |binary vcl/qa/cppunit/png/data/s37n3p04.png |binary vcl/qa/cppunit/png/data/s38i3p04.png |binary vcl/qa/cppunit/png/data/s38n3p04.png |binary vcl/qa/cppunit/png/data/s39i3p04.png |binary vcl/qa/cppunit/png/data/s39n3p04.png |binary vcl/qa/cppunit/png/data/s40i3p04.png |binary vcl/qa/cppunit/png/data/s40n3p04.png |binary vcl/qa/cppunit/png/data/tbbn0g04.png |binary vcl/qa/cppunit/png/data/tbbn2c16.png |binary vcl/qa/cppunit/png/data/tbbn3p08.png |binary vcl/qa/cppunit/png/data/tbgn2c16.png |binary vcl/qa/cppunit/png/data/tbgn3p08.png |binary vcl/qa/cppunit/png/data/tbrn2c08.png |binary vcl/qa/cppunit/png/data/tbwn0g16.png |binary vcl/qa/cppunit/png/data/tbwn3p08.png |binary vcl/qa/cppunit/png/data/tbyn3p08.png |binary vcl/qa/cppunit/png/data/tm3n3p02.png |binary vcl/qa/cppunit/png/data/tp1n3p08.png |binary vcl/qa/cppunit/png/data/xc1n0g08.png |binary vcl/qa/cppunit/png/data/xc9n2c08.png |binary vcl/qa/cppunit/png/data/xcrn0g04.png |binary vcl/qa/cppunit/png/data/xcsn0g01.png |binary vcl/qa/cppunit/png/data/xd0n2c08.png |binary vcl/qa/cppunit/png/data/xd3n2c08.png |binary vcl/qa/cppunit/png/data/xd9n2c08.png |binary vcl/qa/cppunit/png/data/xdtn0g01.png |binary vcl/qa/cppunit/png/data/xhdn0g08.png |binary vcl/qa/cppunit/png/data/xlfn0g04.png |binary vcl/qa/cppunit/png/data/xs1n0g01.png |binary vcl/qa/cppunit/png/data/xs2n0g01.png |binary vcl/qa/cppunit/png/data/xs4n0g01.png |binary vcl/qa/cppunit/png/data/xs7n0g01.png |binary vcl/qa/cppunit/png/data/z00n2c08.png |binary vcl/qa/cppunit/png/data/z03n2c08.png |binary vcl/qa/cppunit/png/data/z06n2c08.png |binary vcl/qa/cppunit/png/data/z09n2c08.png |binary 173 files changed, 1445 insertions(+)
New commits: commit 4347a032d34497f324a944629dfb49702cb3c54c Author: offtkp <parisop...@gmail.com> AuthorDate: Fri Jun 24 11:42:26 2022 +0300 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Tue Jul 19 09:57:50 2022 +0200 Add PngSuite .png test files and test function Add testPngSuite function that tests the PngSuite files against width and height, bit depth, whether it's paletted or if it has alpha To be used with the new pngreader/writer to verify that it was implemented correctly Change-Id: Ic334df36735fabcde71ecec7fbf463e255b06d4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136359 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/vcl/qa/cppunit/png/PngFilterTest.cxx b/vcl/qa/cppunit/png/PngFilterTest.cxx index 727f86c9476b..81531f21b0e6 100644 --- a/vcl/qa/cppunit/png/PngFilterTest.cxx +++ b/vcl/qa/cppunit/png/PngFilterTest.cxx @@ -33,6 +33,122 @@ using namespace css; +namespace +{ +struct Case +{ + tools::Long mnWidth; + tools::Long mnHeight; + sal_uInt16 mnBpp; + bool mbHasPalette; + bool mbIsAlpha; +}; +// Checks that a pngs BitmapEx is the same after reading and +// after writing. Takes a vector of function pointers if there's need to test +// special cases +void checkImportExportPng(const OUString& sFilePath, const Case& aCase) +{ + SvFileStream aFileStream(sFilePath, StreamMode::READ); + SvMemoryStream aExportStream; + BitmapEx aImportedBitmapEx; + BitmapEx aExportedImportedBitmapEx; + + bool bOpenOk = !aFileStream.GetError() && aFileStream.GetBufferSize() > 0; + CPPUNIT_ASSERT_MESSAGE(OString("Failed to open file: " + sFilePath.toUtf8()).getStr(), bOpenOk); + + // Read the png from the file + { + vcl::PngImageReader aPngReader(aFileStream); + bool bReadOk = aPngReader.read(aImportedBitmapEx); + CPPUNIT_ASSERT_MESSAGE(OString("Failed to read png from: " + sFilePath.toUtf8()).getStr(), + bReadOk); + Bitmap aImportedBitmap = aImportedBitmapEx.GetBitmap(); + Bitmap::ScopedInfoAccess pAccess(aImportedBitmap); + auto nActualWidth = aImportedBitmapEx.GetSizePixel().Width(); + auto nActualHeight = aImportedBitmapEx.GetSizePixel().Height(); + auto nActualBpp = vcl::pixelFormatBitCount(aImportedBitmapEx.GetBitmap().getPixelFormat()); + auto bActualHasPalette = pAccess->HasPalette(); + auto bActualIsAlpha = aImportedBitmapEx.IsAlpha(); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Width comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnWidth, nActualWidth); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Height comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnHeight, nActualHeight); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Bpp comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnBpp, nActualBpp); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("HasPalette comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mbHasPalette, bActualHasPalette); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("IsAlpha comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mbIsAlpha, bActualIsAlpha); + } + + // Write the imported png to a stream + { + vcl::PngImageWriter aPngWriter(aExportStream); + bool bWriteOk = aPngWriter.write(aImportedBitmapEx); + CPPUNIT_ASSERT_MESSAGE(OString("Failed to write png: " + sFilePath.toUtf8()).getStr(), + bWriteOk); + aExportStream.Seek(0); + } + + // Read the png again from the exported stream + { + vcl::PngImageReader aPngReader(aExportStream); + bool bReadOk = aPngReader.read(aExportedImportedBitmapEx); + CPPUNIT_ASSERT_MESSAGE( + OString("Failed to read exported png: " + sFilePath.toUtf8()).getStr(), bReadOk); + Bitmap aExportedImportedBitmap = aExportedImportedBitmapEx.GetBitmap(); + Bitmap::ScopedInfoAccess pAccess(aExportedImportedBitmap); + auto nActualWidth = aExportedImportedBitmapEx.GetSizePixel().Width(); + auto nActualHeight = aExportedImportedBitmapEx.GetSizePixel().Height(); + auto nActualBpp + = vcl::pixelFormatBitCount(aExportedImportedBitmapEx.GetBitmap().getPixelFormat()); + auto bActualHasPalette = pAccess->HasPalette(); + auto bActualIsAlpha = aExportedImportedBitmapEx.IsAlpha(); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Width comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnWidth, nActualWidth); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Height comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnHeight, nActualHeight); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("Bpp comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mnBpp, nActualBpp); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("HasPalette comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mbHasPalette, bActualHasPalette); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + OString("IsAlpha comparison failed for exported png:" + sFilePath.toUtf8()).getStr(), + aCase.mbIsAlpha, bActualIsAlpha); + } + + // Compare imported and exported BitmapEx + // This compares size, inner bitmap and alpha mask + bool bIsSame = (aExportedImportedBitmapEx == aImportedBitmapEx); + CPPUNIT_ASSERT_MESSAGE( + OString("Import->Export png test failed for png: " + sFilePath.toUtf8()).getStr(), bIsSame); +} + +// Checks that aPngReader.read returns false on corrupted files +void checkImportCorruptedPng(const OUString& sFilePath) +{ + SvFileStream aFileStream(sFilePath, StreamMode::READ); + BitmapEx aImportedBitmapEx; + + bool bOpenOk = !aFileStream.GetError() && aFileStream.GetBufferSize() > 0; + CPPUNIT_ASSERT_MESSAGE(OString("Failed to open file: " + sFilePath.toUtf8()).getStr(), bOpenOk); + vcl::PngImageReader aPngReader(aFileStream); + bool bReadOk = aPngReader.read(aImportedBitmapEx); + // Make sure this file was not read successfully + CPPUNIT_ASSERT_MESSAGE( + OString("Corrupted png should not be opened: " + sFilePath.toUtf8()).getStr(), !bReadOk); +} +} + class PngFilterTest : public test::BootstrapFixture { // Should keep the temp files (should be false) @@ -53,6 +169,7 @@ public: } void testPng(); + void testPngSuite(); void testMsGifInPng(); void testPngRoundtrip8BitGrey(); void testPngRoundtrip24(); @@ -61,6 +178,7 @@ public: CPPUNIT_TEST_SUITE(PngFilterTest); CPPUNIT_TEST(testPng); + CPPUNIT_TEST(testPngSuite); CPPUNIT_TEST(testMsGifInPng); CPPUNIT_TEST(testPngRoundtrip8BitGrey); CPPUNIT_TEST(testPngRoundtrip24); @@ -245,6 +363,1333 @@ void PngFilterTest::testPng() } } +void PngFilterTest::testPngSuite() +{ + // Test the PngSuite test files by Willem van Schaik + // filename: g04i2c08.png + // || |||| + // test feature (in this case gamma) ------+| |||| + // parameter of test (here gamma-value) ----+ |||| + // interlaced or non-interlaced --------------+||| + // color-type (numerical) ---------------------+|| + // color-type (descriptive) --------------------+| + // bit-depth ------------------------------------+ + + // Some notes about the cases: + // - RGB palette PNGs get converted to a bitmap with png_set_palette_to_rgb + // - Grayscale PNGs with alpha also do with png_set_gray_to_rgb + // - Grayscale PNGs without alpha use BitmapEx palette utilities + // - 1, 2, 4 bit grayscale w/o alpha gets converted to 8 bit with png_set_expand_gray_1_2_4_to_8 + // - 16 bit per channel gets converted to 8 bit per channel with png_set_scale_16 + // - PNGs that are not size related have size 32x32 + // - Internally BitmapEx is never 32 bpp, instead it's 24 bpp (rgb) and uses an 8 bpp alpha mask + std::pair<std::u16string_view, Case> aCases[] = { + // Basic formats, not interlaced + { u"basn0g01.png", + { + 32, + 32, + 8, + true, + false, + } }, // b&w + { u"basn0g02.png", + { + 32, + 32, + 8, + true, + false, + } }, // 2 bit grayscale + { u"basn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // 4 bit grayscale + { u"basn0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // 8 bit grayscale + { u"basn0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // 16 bit grayscale + { u"basn2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // 8 bit rgb + { u"basn2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // 16 bit rgb + { u"basn3p01.png", + { + 32, + 32, + 24, + false, + false, + } }, // 1 bit palette + { u"basn3p02.png", + { + 32, + 32, + 24, + false, + false, + } }, // 2 bit palette + { u"basn3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // 4 bit palette + { u"basn3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // 8 bit palette + { u"basn4a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit grayscale + 8 bit alpha + { u"basn4a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit grayscale + 16 bit alpha + { u"basn6a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit rgba + { u"basn6a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit rgba + // Basic formats, interlaced + { u"basi0g01.png", + { + 32, + 32, + 8, + true, + false, + } }, // b&w + { u"basi0g02.png", + { + 32, + 32, + 8, + true, + false, + } }, // 2 bit grayscale + { u"basi0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // 4 bit grayscale + { u"basi0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // 8 bit grayscale + { u"basi0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // 16 bit grayscale + { u"basi2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // 8 bit rgb + { u"basi2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // 16 bit rgb + { u"basi3p01.png", + { + 32, + 32, + 24, + false, + false, + } }, // 1 bit palette + { u"basi3p02.png", + { + 32, + 32, + 24, + false, + false, + } }, // 2 bit palette + { u"basi3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // 4 bit palette + { u"basi3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // 8 bit palette + { u"basi4a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit grayscale + 8 bit alpha + { u"basi4a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit grayscale + 16 bit alpha + { u"basi6a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit rgba + { u"basi6a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit rgba + // // Odd sizes, not interlaced + { u"s01n3p01.png", + { + 1, + 1, + 24, + false, + false, + } }, // 1x1 + { u"s02n3p01.png", + { + 2, + 2, + 24, + false, + false, + } }, // 2x2 + { u"s03n3p01.png", + { + 3, + 3, + 24, + false, + false, + } }, // 3x3 + { u"s04n3p01.png", + { + 4, + 4, + 24, + false, + false, + } }, // 4x4 + { u"s05n3p02.png", + { + 5, + 5, + 24, + false, + false, + } }, // 5x5 + { u"s06n3p02.png", + { + 6, + 6, + 24, + false, + false, + } }, // 6x6 + { u"s07n3p02.png", + { + 7, + 7, + 24, + false, + false, + } }, // 7x7 + { u"s08n3p02.png", + { + 8, + 8, + 24, + false, + false, + } }, // 8x8 + { u"s09n3p02.png", + { + 9, + 9, + 24, + false, + false, + } }, // 9x9 + { u"s32n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // 32x32 + { u"s33n3p04.png", + { + 33, + 33, + 24, + false, + false, + } }, // 33x33 + { u"s34n3p04.png", + { + 34, + 34, + 24, + false, + false, + } }, // 34x34 + { u"s35n3p04.png", + { + 35, + 35, + 24, + false, + false, + } }, // 35x35 + { u"s36n3p04.png", + { + 36, + 36, + 24, + false, + false, + } }, // 36x36 + { u"s37n3p04.png", + { + 37, + 37, + 24, + false, + false, + } }, // 37x37 + { u"s38n3p04.png", + { + 38, + 38, + 24, + false, + false, + } }, // 38x38 + { u"s39n3p04.png", + { + 39, + 39, + 24, + false, + false, + } }, // 39x39 + { u"s40n3p04.png", + { + 40, + 40, + 24, + false, + false, + } }, // 40x40 + // // Odd sizes, interlaced + { u"s01i3p01.png", + { + 1, + 1, + 24, + false, + false, + } }, // 1x1 + { u"s02i3p01.png", + { + 2, + 2, + 24, + false, + false, + } }, // 2x2 + { u"s03i3p01.png", + { + 3, + 3, + 24, + false, + false, + } }, // 3x3 + { u"s04i3p01.png", + { + 4, + 4, + 24, + false, + false, + } }, // 4x4 + { u"s05i3p02.png", + { + 5, + 5, + 24, + false, + false, + } }, // 5x5 + { u"s06i3p02.png", + { + 6, + 6, + 24, + false, + false, + } }, // 6x6 + { u"s07i3p02.png", + { + 7, + 7, + 24, + false, + false, + } }, // 7x7 + { u"s08i3p02.png", + { + 8, + 8, + 24, + false, + false, + } }, // 8x8 + { u"s09i3p02.png", + { + 9, + 9, + 24, + false, + false, + } }, // 9x9 + { u"s32i3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // 32x32 + { u"s33i3p04.png", + { + 33, + 33, + 24, + false, + false, + } }, // 33x33 + { u"s34i3p04.png", + { + 34, + 34, + 24, + false, + false, + } }, // 34x34 + { u"s35i3p04.png", + { + 35, + 35, + 24, + false, + false, + } }, // 35x35 + { u"s36i3p04.png", + { + 36, + 36, + 24, + false, + false, + } }, // 36x36 + { u"s37i3p04.png", + { + 37, + 37, + 24, + false, + false, + } }, // 37x37 + { u"s38i3p04.png", + { + 38, + 38, + 24, + false, + false, + } }, // 38x38 + { u"s39i3p04.png", + { + 39, + 39, + 24, + false, + false, + } }, // 39x39 + { u"s40i3p04.png", + { + 40, + 40, + 24, + false, + false, + } }, // 40x40 + // Background colors + { u"bgai4a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit grayscale alpha no background chunk, interlaced + { u"bgai4a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit grayscale alpha no background chunk, interlaced + { u"bgan6a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 3 * 8 bits rgb color alpha, no background chunk + { u"bgan6a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 3 * 16 bits rgb color alpha, no background chunk + { u"bgbn4a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 8 bit grayscale alpha, black background chunk + { u"bggn4a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 16 bit grayscale alpha, gray background chunk + { u"bgwn6a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // 3 * 8 bits rgb color alpha, white background chunk + { u"bgyn6a16.png", + { + 32, + 32, + 24, + false, + true, + } }, // 3 * 16 bits rgb color alpha, yellow background chunk + // Transparency + { u"tbbn0g04.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, black background chunk + { u"tbbn2c16.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, blue background chunk + { u"tbbn3p08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, black background chunk + { u"tbgn2c16.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, green background chunk + { u"tbgn3p08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, light-gray background chunk + { u"tbrn2c08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, red background chunk + { u"tbwn0g16.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, white background chunk + { u"tbwn3p08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, white background chunk + { u"tbyn3p08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, yellow background chunk + { u"tp1n3p08.png", + { + 32, + 32, + 24, + false, + true, + } }, // transparent, but no background chunk + { u"tm3n3p02.png", + { + 32, + 32, + 24, + false, + true, + } }, // multiple levels of transparency, 3 entries + // Gamma + { u"g03n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 0.35 + { u"g03n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 0.35 + { u"g03n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 0.35 + { u"g04n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 0.45 + { u"g04n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 0.45 + { u"g04n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 0.45 + { u"g05n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 0.55 + { u"g05n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 0.55 + { u"g05n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 0.55 + { u"g07n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 0.70 + { u"g07n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 0.70 + { u"g07n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 0.70 + { u"g10n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 1.00 + { u"g10n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 1.00 + { u"g10n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 1.00 + { u"g25n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale, file-gamma = 2.50 + { u"g25n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, file-gamma = 2.50 + { u"g25n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, file-gamma = 2.50 + // Image filtering + { u"f00n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no interlacing, filter-type 0 + { u"f00n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, filter-type 0 + { u"f01n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no interlacing, filter-type 1 + { u"f01n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, filter-type 1 + { u"f02n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no interlacing, filter-type 2 + { u"f02n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, filter-type 2 + { u"f03n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no interlacing, filter-type 3 + { u"f03n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, filter-type 3 + { u"f04n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no interlacing, filter-type 4 + { u"f04n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, filter-type 4 + { u"f99n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale bit-depth 4, filter changing per scanline + // Additional palettes + { u"pp0n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // six-cube palette-chunk in true-color image + { u"pp0n6a08.png", + { + 32, + 32, + 24, + false, + true, + } }, // six-cube palette-chunk in true-color+alpha image + { u"ps1n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // six-cube suggested palette (1 byte) in grayscale image + { u"ps1n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // six-cube suggested palette (1 byte) in true-color image + { u"ps2n0g08.png", + { + 32, + 32, + 8, + true, + false, + } }, // six-cube suggested palette (2 bytes) in grayscale image + { u"ps2n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // six-cube suggested palette (2 bytes) in true-color image + // Ancillary chunks + { u"ccwn2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // chroma chunk w:0.31270.329 r:0.640.33 g:0.300.60 b:0.15,0.06 + { u"ccwn3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // chroma chunk w:0.31270.329 r:0.640.33 g:0.300.60 b:0.15,0.06 + { u"cdfn2c08.png", + { + 8, + 32, + 24, + false, + false, + } }, // physical pixel dimensions, 8x32 flat pixels + { u"cdhn2c08.png", + { + 32, + 8, + 24, + false, + false, + } }, // physical pixel dimensions, 32x8 high pixels + { u"cdsn2c08.png", + { + 8, + 8, + 24, + false, + false, + } }, // physical pixel dimensions, 8x8 square pixels + { u"cdun2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // physical pixel dimensions, 1000 pixels per 1 meter + { u"ch1n3p04.png", + { + 32, + 32, + 24, + false, + false, + } }, // histogram 15 colors + { u"ch2n3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // histogram 256 colors + { u"cm0n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale modification time, 01-jan-2000 12:34:56 + { u"cm7n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale modification time, 01-jan-1970 00:00:00 + { u"cm9n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale modification time, 31-dec-1999 23:59:59 + { u"cs3n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, 13 significant bits + { u"cs3n3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, 3 significant bits + { u"cs5n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, 5 significant bits + { u"cs5n3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, 5 significant bits + { u"cs8n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color, 8 significant bits (reference) + { u"cs8n3p08.png", + { + 32, + 32, + 24, + false, + false, + } }, // paletted, 8 significant bits (reference) + { u"ct0n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale no textual data + { u"ct1n0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale with textual data + { u"ctzn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale with compressed textual data + { u"cten0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale international UTF-8, english + { u"ctfn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale international UTF-8, finnish + { u"ctgn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale international UTF-8, greek + { u"cthn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale international UTF-8, hindi + { u"ctjn0g04.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale international UTF-8, japanese + { u"exif2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // chunk with jpeg exif data + // Chunk ordering + { u"oi1n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale mother image with 1 idat-chunk + { u"oi1n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // color mother image with 1 idat-chunk + { u"oi2n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale image with 2 idat-chunks + { u"oi2n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // color image with 2 idat-chunks + { u"oi4n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale image with 4 unequal sized idat-chunks + { u"oi4n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // color image with 4 unequal sized idat-chunks + { u"oi9n0g16.png", + { + 32, + 32, + 8, + true, + false, + } }, // grayscale image with all idat-chunks length one + { u"oi9n2c16.png", + { + 32, + 32, + 24, + false, + false, + } }, // color image with all idat-chunks length one + // Zlib compression + { u"z00n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, compression level 0 (none) + { u"z03n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, compression level 3 + { u"z06n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, compression level 6 (default) + { u"z09n2c08.png", + { + 32, + 32, + 24, + false, + false, + } }, // color no interlacing, compression level 9 (maximum) + }; + + for (const auto & [ aCaseName, aCase ] : aCases) + { + checkImportExportPng(getFullUrl(aCaseName), aCase); + } + + OUString aCorruptedFilenames[] = { + "xs1n0g01.png", // signature byte 1 MSBit reset to zero + "xs2n0g01.png", // signature byte 2 is a 'Q' + "xs4n0g01.png", // signature byte 4 lowercase + "xs7n0g01.png", // 7th byte a space instead of control-Z + "xcrn0g04.png", // added cr bytes + "xlfn0g04.png", // added lf bytes + "xhdn0g08.png", // incorrect IHDR checksum + "xc1n0g08.png", // color type 1 + "xc9n2c08.png", // color type 9 + "xd0n2c08.png", // bit-depth 0 + "xd3n2c08.png", // bit-depth 3 + "xd9n2c08.png", // bit-depth 99 + "xdtn0g01.png", // missing IDAT chunk + "xcsn0g01.png", // incorrect IDAT checksum + }; + + for (const auto& aFilename : aCorruptedFilenames) + { + checkImportCorruptedPng(getFullUrl(aFilename)); + } +} + void PngFilterTest::testMsGifInPng() { Graphic aGraphic; diff --git a/vcl/qa/cppunit/png/data/basi0g01.png b/vcl/qa/cppunit/png/data/basi0g01.png new file mode 100644 index 000000000000..556fa7270408 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi0g01.png differ diff --git a/vcl/qa/cppunit/png/data/basi0g02.png b/vcl/qa/cppunit/png/data/basi0g02.png new file mode 100644 index 000000000000..ce09821ef101 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi0g02.png differ diff --git a/vcl/qa/cppunit/png/data/basi0g04.png b/vcl/qa/cppunit/png/data/basi0g04.png new file mode 100644 index 000000000000..3853273f93e5 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi0g04.png differ diff --git a/vcl/qa/cppunit/png/data/basi0g08.png b/vcl/qa/cppunit/png/data/basi0g08.png new file mode 100644 index 000000000000..faed8bec445f Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi0g08.png differ diff --git a/vcl/qa/cppunit/png/data/basi0g16.png b/vcl/qa/cppunit/png/data/basi0g16.png new file mode 100644 index 000000000000..a9f28165efd4 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi0g16.png differ diff --git a/vcl/qa/cppunit/png/data/basi2c08.png b/vcl/qa/cppunit/png/data/basi2c08.png new file mode 100644 index 000000000000..2aab44d42b23 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi2c08.png differ diff --git a/vcl/qa/cppunit/png/data/basi2c16.png b/vcl/qa/cppunit/png/data/basi2c16.png new file mode 100644 index 000000000000..cd7e50f91402 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi2c16.png differ diff --git a/vcl/qa/cppunit/png/data/basi3p01.png b/vcl/qa/cppunit/png/data/basi3p01.png new file mode 100644 index 000000000000..00a7cea6c2d3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi3p01.png differ diff --git a/vcl/qa/cppunit/png/data/basi3p02.png b/vcl/qa/cppunit/png/data/basi3p02.png new file mode 100644 index 000000000000..bb16b44b3090 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi3p02.png differ diff --git a/vcl/qa/cppunit/png/data/basi3p04.png b/vcl/qa/cppunit/png/data/basi3p04.png new file mode 100644 index 000000000000..b4e888e2477d Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi3p04.png differ diff --git a/vcl/qa/cppunit/png/data/basi3p08.png b/vcl/qa/cppunit/png/data/basi3p08.png new file mode 100644 index 000000000000..50a6d1cac7a1 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi3p08.png differ diff --git a/vcl/qa/cppunit/png/data/basi4a08.png b/vcl/qa/cppunit/png/data/basi4a08.png new file mode 100644 index 000000000000..398132be5faa Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi4a08.png differ diff --git a/vcl/qa/cppunit/png/data/basi4a16.png b/vcl/qa/cppunit/png/data/basi4a16.png new file mode 100644 index 000000000000..51192e731106 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi4a16.png differ diff --git a/vcl/qa/cppunit/png/data/basi6a08.png b/vcl/qa/cppunit/png/data/basi6a08.png new file mode 100644 index 000000000000..aecb32e0d9e3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi6a08.png differ diff --git a/vcl/qa/cppunit/png/data/basi6a16.png b/vcl/qa/cppunit/png/data/basi6a16.png new file mode 100644 index 000000000000..4181533ad81b Binary files /dev/null and b/vcl/qa/cppunit/png/data/basi6a16.png differ diff --git a/vcl/qa/cppunit/png/data/basn0g01.png b/vcl/qa/cppunit/png/data/basn0g01.png new file mode 100644 index 000000000000..1d722423aa51 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn0g01.png differ diff --git a/vcl/qa/cppunit/png/data/basn0g02.png b/vcl/qa/cppunit/png/data/basn0g02.png new file mode 100644 index 000000000000..508332418fa8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn0g02.png differ diff --git a/vcl/qa/cppunit/png/data/basn0g04.png b/vcl/qa/cppunit/png/data/basn0g04.png new file mode 100644 index 000000000000..0bf3687863d8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/basn0g08.png b/vcl/qa/cppunit/png/data/basn0g08.png new file mode 100644 index 000000000000..23c82379a29f Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn0g08.png differ diff --git a/vcl/qa/cppunit/png/data/basn0g16.png b/vcl/qa/cppunit/png/data/basn0g16.png new file mode 100644 index 000000000000..e7c82f78eb95 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn0g16.png differ diff --git a/vcl/qa/cppunit/png/data/basn2c08.png b/vcl/qa/cppunit/png/data/basn2c08.png new file mode 100644 index 000000000000..db5ad15865f5 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/basn2c16.png b/vcl/qa/cppunit/png/data/basn2c16.png new file mode 100644 index 000000000000..50c1cb91a017 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn2c16.png differ diff --git a/vcl/qa/cppunit/png/data/basn3p01.png b/vcl/qa/cppunit/png/data/basn3p01.png new file mode 100644 index 000000000000..b145c2b8eff1 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn3p01.png differ diff --git a/vcl/qa/cppunit/png/data/basn3p02.png b/vcl/qa/cppunit/png/data/basn3p02.png new file mode 100644 index 000000000000..8985b3d818e3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn3p02.png differ diff --git a/vcl/qa/cppunit/png/data/basn3p04.png b/vcl/qa/cppunit/png/data/basn3p04.png new file mode 100644 index 000000000000..0fbf9e827b46 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn3p04.png differ diff --git a/vcl/qa/cppunit/png/data/basn3p08.png b/vcl/qa/cppunit/png/data/basn3p08.png new file mode 100644 index 000000000000..0ddad07e5f5d Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/basn4a08.png b/vcl/qa/cppunit/png/data/basn4a08.png new file mode 100644 index 000000000000..3e13052201c9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn4a08.png differ diff --git a/vcl/qa/cppunit/png/data/basn4a16.png b/vcl/qa/cppunit/png/data/basn4a16.png new file mode 100644 index 000000000000..8243644d0743 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn4a16.png differ diff --git a/vcl/qa/cppunit/png/data/basn6a08.png b/vcl/qa/cppunit/png/data/basn6a08.png new file mode 100644 index 000000000000..e6087387639b Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn6a08.png differ diff --git a/vcl/qa/cppunit/png/data/basn6a16.png b/vcl/qa/cppunit/png/data/basn6a16.png new file mode 100644 index 000000000000..984a99525f52 Binary files /dev/null and b/vcl/qa/cppunit/png/data/basn6a16.png differ diff --git a/vcl/qa/cppunit/png/data/bgai4a08.png b/vcl/qa/cppunit/png/data/bgai4a08.png new file mode 100644 index 000000000000..398132be5faa Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgai4a08.png differ diff --git a/vcl/qa/cppunit/png/data/bgai4a16.png b/vcl/qa/cppunit/png/data/bgai4a16.png new file mode 100644 index 000000000000..51192e731106 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgai4a16.png differ diff --git a/vcl/qa/cppunit/png/data/bgan6a08.png b/vcl/qa/cppunit/png/data/bgan6a08.png new file mode 100644 index 000000000000..e6087387639b Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgan6a08.png differ diff --git a/vcl/qa/cppunit/png/data/bgan6a16.png b/vcl/qa/cppunit/png/data/bgan6a16.png new file mode 100644 index 000000000000..984a99525f52 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgan6a16.png differ diff --git a/vcl/qa/cppunit/png/data/bgbn4a08.png b/vcl/qa/cppunit/png/data/bgbn4a08.png new file mode 100644 index 000000000000..7cbefc3bff08 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgbn4a08.png differ diff --git a/vcl/qa/cppunit/png/data/bggn4a16.png b/vcl/qa/cppunit/png/data/bggn4a16.png new file mode 100644 index 000000000000..13fd85ba1933 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bggn4a16.png differ diff --git a/vcl/qa/cppunit/png/data/bgwn6a08.png b/vcl/qa/cppunit/png/data/bgwn6a08.png new file mode 100644 index 000000000000..a67ff205bba9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgwn6a08.png differ diff --git a/vcl/qa/cppunit/png/data/bgyn6a16.png b/vcl/qa/cppunit/png/data/bgyn6a16.png new file mode 100644 index 000000000000..ae3e9be58a82 Binary files /dev/null and b/vcl/qa/cppunit/png/data/bgyn6a16.png differ diff --git a/vcl/qa/cppunit/png/data/ccwn2c08.png b/vcl/qa/cppunit/png/data/ccwn2c08.png new file mode 100644 index 000000000000..47c24817b79c Binary files /dev/null and b/vcl/qa/cppunit/png/data/ccwn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/ccwn3p08.png b/vcl/qa/cppunit/png/data/ccwn3p08.png new file mode 100644 index 000000000000..8bb2c1098159 Binary files /dev/null and b/vcl/qa/cppunit/png/data/ccwn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/cdfn2c08.png b/vcl/qa/cppunit/png/data/cdfn2c08.png new file mode 100644 index 000000000000..559e5261e705 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cdfn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/cdhn2c08.png b/vcl/qa/cppunit/png/data/cdhn2c08.png new file mode 100644 index 000000000000..3e07e8ecbd08 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cdhn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/cdsn2c08.png b/vcl/qa/cppunit/png/data/cdsn2c08.png new file mode 100644 index 000000000000..076c32cc0820 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cdsn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/cdun2c08.png b/vcl/qa/cppunit/png/data/cdun2c08.png new file mode 100644 index 000000000000..846033be6b4f Binary files /dev/null and b/vcl/qa/cppunit/png/data/cdun2c08.png differ diff --git a/vcl/qa/cppunit/png/data/ch1n3p04.png b/vcl/qa/cppunit/png/data/ch1n3p04.png new file mode 100644 index 000000000000..17cd12dfc916 Binary files /dev/null and b/vcl/qa/cppunit/png/data/ch1n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/ch2n3p08.png b/vcl/qa/cppunit/png/data/ch2n3p08.png new file mode 100644 index 000000000000..25c17987a778 Binary files /dev/null and b/vcl/qa/cppunit/png/data/ch2n3p08.png differ diff --git a/vcl/qa/cppunit/png/data/cm0n0g04.png b/vcl/qa/cppunit/png/data/cm0n0g04.png new file mode 100644 index 000000000000..9fba5db3b82c Binary files /dev/null and b/vcl/qa/cppunit/png/data/cm0n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/cm7n0g04.png b/vcl/qa/cppunit/png/data/cm7n0g04.png new file mode 100644 index 000000000000..f7dc46e6853b Binary files /dev/null and b/vcl/qa/cppunit/png/data/cm7n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/cm9n0g04.png b/vcl/qa/cppunit/png/data/cm9n0g04.png new file mode 100644 index 000000000000..dd70911adce1 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cm9n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/cs3n2c16.png b/vcl/qa/cppunit/png/data/cs3n2c16.png new file mode 100644 index 000000000000..bf5fd20a2044 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs3n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/cs3n3p08.png b/vcl/qa/cppunit/png/data/cs3n3p08.png new file mode 100644 index 000000000000..f4a66237bfb3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs3n3p08.png differ diff --git a/vcl/qa/cppunit/png/data/cs5n2c08.png b/vcl/qa/cppunit/png/data/cs5n2c08.png new file mode 100644 index 000000000000..40f947c33e47 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs5n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/cs5n3p08.png b/vcl/qa/cppunit/png/data/cs5n3p08.png new file mode 100644 index 000000000000..dfd6e6e6ecfc Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs5n3p08.png differ diff --git a/vcl/qa/cppunit/png/data/cs8n2c08.png b/vcl/qa/cppunit/png/data/cs8n2c08.png new file mode 100644 index 000000000000..8e01d3294ff7 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs8n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/cs8n3p08.png b/vcl/qa/cppunit/png/data/cs8n3p08.png new file mode 100644 index 000000000000..a44066eb6edf Binary files /dev/null and b/vcl/qa/cppunit/png/data/cs8n3p08.png differ diff --git a/vcl/qa/cppunit/png/data/ct0n0g04.png b/vcl/qa/cppunit/png/data/ct0n0g04.png new file mode 100644 index 000000000000..40d1e062f8cd Binary files /dev/null and b/vcl/qa/cppunit/png/data/ct0n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/ct1n0g04.png b/vcl/qa/cppunit/png/data/ct1n0g04.png new file mode 100644 index 000000000000..3ba110aa764f Binary files /dev/null and b/vcl/qa/cppunit/png/data/ct1n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/cten0g04.png b/vcl/qa/cppunit/png/data/cten0g04.png new file mode 100644 index 000000000000..a6a56faf2b3e Binary files /dev/null and b/vcl/qa/cppunit/png/data/cten0g04.png differ diff --git a/vcl/qa/cppunit/png/data/ctfn0g04.png b/vcl/qa/cppunit/png/data/ctfn0g04.png new file mode 100644 index 000000000000..353873ebbd0c Binary files /dev/null and b/vcl/qa/cppunit/png/data/ctfn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/ctgn0g04.png b/vcl/qa/cppunit/png/data/ctgn0g04.png new file mode 100644 index 000000000000..453f2b0a49ee Binary files /dev/null and b/vcl/qa/cppunit/png/data/ctgn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/cthn0g04.png b/vcl/qa/cppunit/png/data/cthn0g04.png new file mode 100644 index 000000000000..8fce253e6da2 Binary files /dev/null and b/vcl/qa/cppunit/png/data/cthn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/ctjn0g04.png b/vcl/qa/cppunit/png/data/ctjn0g04.png new file mode 100644 index 000000000000..a77b8d2fee4c Binary files /dev/null and b/vcl/qa/cppunit/png/data/ctjn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/ctzn0g04.png b/vcl/qa/cppunit/png/data/ctzn0g04.png new file mode 100644 index 000000000000..b4401c9cfca8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/ctzn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/exif2c08.png b/vcl/qa/cppunit/png/data/exif2c08.png new file mode 100644 index 000000000000..56eb73499149 Binary files /dev/null and b/vcl/qa/cppunit/png/data/exif2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f00n0g08.png b/vcl/qa/cppunit/png/data/f00n0g08.png new file mode 100644 index 000000000000..45a007596753 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f00n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/f00n2c08.png b/vcl/qa/cppunit/png/data/f00n2c08.png new file mode 100644 index 000000000000..d6a1ffff62eb Binary files /dev/null and b/vcl/qa/cppunit/png/data/f00n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f01n0g08.png b/vcl/qa/cppunit/png/data/f01n0g08.png new file mode 100644 index 000000000000..4a1107b46376 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f01n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/f01n2c08.png b/vcl/qa/cppunit/png/data/f01n2c08.png new file mode 100644 index 000000000000..26fee958ce7e Binary files /dev/null and b/vcl/qa/cppunit/png/data/f01n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f02n0g08.png b/vcl/qa/cppunit/png/data/f02n0g08.png new file mode 100644 index 000000000000..bfe410c5e7ca Binary files /dev/null and b/vcl/qa/cppunit/png/data/f02n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/f02n2c08.png b/vcl/qa/cppunit/png/data/f02n2c08.png new file mode 100644 index 000000000000..e590f1234816 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f02n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f03n0g08.png b/vcl/qa/cppunit/png/data/f03n0g08.png new file mode 100644 index 000000000000..ed01e2923c92 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f03n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/f03n2c08.png b/vcl/qa/cppunit/png/data/f03n2c08.png new file mode 100644 index 000000000000..758115059d78 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f03n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f04n0g08.png b/vcl/qa/cppunit/png/data/f04n0g08.png new file mode 100644 index 000000000000..663fdae3e7d9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/f04n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/f04n2c08.png b/vcl/qa/cppunit/png/data/f04n2c08.png new file mode 100644 index 000000000000..3c8b5116e72a Binary files /dev/null and b/vcl/qa/cppunit/png/data/f04n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/f99n0g04.png b/vcl/qa/cppunit/png/data/f99n0g04.png new file mode 100644 index 000000000000..0b521c1d56ac Binary files /dev/null and b/vcl/qa/cppunit/png/data/f99n0g04.png differ diff --git a/vcl/qa/cppunit/png/data/g03n0g16.png b/vcl/qa/cppunit/png/data/g03n0g16.png new file mode 100644 index 000000000000..41083ca80f96 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g03n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g03n2c08.png b/vcl/qa/cppunit/png/data/g03n2c08.png new file mode 100644 index 000000000000..a9354dbee6f3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g03n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g03n3p04.png b/vcl/qa/cppunit/png/data/g03n3p04.png new file mode 100644 index 000000000000..60396c95af19 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g03n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/g04n0g16.png b/vcl/qa/cppunit/png/data/g04n0g16.png new file mode 100644 index 000000000000..32395b76c9c0 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g04n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g04n2c08.png b/vcl/qa/cppunit/png/data/g04n2c08.png new file mode 100644 index 000000000000..a652b0ce87ed Binary files /dev/null and b/vcl/qa/cppunit/png/data/g04n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g04n3p04.png b/vcl/qa/cppunit/png/data/g04n3p04.png new file mode 100644 index 000000000000..5661cc31318e Binary files /dev/null and b/vcl/qa/cppunit/png/data/g04n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/g05n0g16.png b/vcl/qa/cppunit/png/data/g05n0g16.png new file mode 100644 index 000000000000..70b37f01e2b9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g05n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g05n2c08.png b/vcl/qa/cppunit/png/data/g05n2c08.png new file mode 100644 index 000000000000..932c1365364f Binary files /dev/null and b/vcl/qa/cppunit/png/data/g05n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g05n3p04.png b/vcl/qa/cppunit/png/data/g05n3p04.png new file mode 100644 index 000000000000..9619930585eb Binary files /dev/null and b/vcl/qa/cppunit/png/data/g05n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/g07n0g16.png b/vcl/qa/cppunit/png/data/g07n0g16.png new file mode 100644 index 000000000000..d6a47c2d5746 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g07n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g07n2c08.png b/vcl/qa/cppunit/png/data/g07n2c08.png new file mode 100644 index 000000000000..597346460f19 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g07n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g07n3p04.png b/vcl/qa/cppunit/png/data/g07n3p04.png new file mode 100644 index 000000000000..c73fb613650d Binary files /dev/null and b/vcl/qa/cppunit/png/data/g07n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/g10n0g16.png b/vcl/qa/cppunit/png/data/g10n0g16.png new file mode 100644 index 000000000000..85f2c958e9a2 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g10n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g10n2c08.png b/vcl/qa/cppunit/png/data/g10n2c08.png new file mode 100644 index 000000000000..b3039970c10e Binary files /dev/null and b/vcl/qa/cppunit/png/data/g10n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g10n3p04.png b/vcl/qa/cppunit/png/data/g10n3p04.png new file mode 100644 index 000000000000..1b6a6be2ca57 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g10n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/g25n0g16.png b/vcl/qa/cppunit/png/data/g25n0g16.png new file mode 100644 index 000000000000..a9f6787c7ab5 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g25n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/g25n2c08.png b/vcl/qa/cppunit/png/data/g25n2c08.png new file mode 100644 index 000000000000..03f505a64b57 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g25n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/g25n3p04.png b/vcl/qa/cppunit/png/data/g25n3p04.png new file mode 100644 index 000000000000..4f943c6175f3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/g25n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/oi1n0g16.png b/vcl/qa/cppunit/png/data/oi1n0g16.png new file mode 100644 index 000000000000..e7c82f78eb95 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi1n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/oi1n2c16.png b/vcl/qa/cppunit/png/data/oi1n2c16.png new file mode 100644 index 000000000000..50c1cb91a017 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi1n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/oi2n0g16.png b/vcl/qa/cppunit/png/data/oi2n0g16.png new file mode 100644 index 000000000000..14d64c583db3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi2n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/oi2n2c16.png b/vcl/qa/cppunit/png/data/oi2n2c16.png new file mode 100644 index 000000000000..4c2e3e3352ba Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi2n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/oi4n0g16.png b/vcl/qa/cppunit/png/data/oi4n0g16.png new file mode 100644 index 000000000000..69e73ede311c Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi4n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/oi4n2c16.png b/vcl/qa/cppunit/png/data/oi4n2c16.png new file mode 100644 index 000000000000..93691e373aa4 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi4n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/oi9n0g16.png b/vcl/qa/cppunit/png/data/oi9n0g16.png new file mode 100644 index 000000000000..9248413576d9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi9n0g16.png differ diff --git a/vcl/qa/cppunit/png/data/oi9n2c16.png b/vcl/qa/cppunit/png/data/oi9n2c16.png new file mode 100644 index 000000000000..f0512e49f230 Binary files /dev/null and b/vcl/qa/cppunit/png/data/oi9n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/pp0n2c16.png b/vcl/qa/cppunit/png/data/pp0n2c16.png new file mode 100644 index 000000000000..8f2aad733520 Binary files /dev/null and b/vcl/qa/cppunit/png/data/pp0n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/pp0n6a08.png b/vcl/qa/cppunit/png/data/pp0n6a08.png new file mode 100644 index 000000000000..4ed7a30e4d16 Binary files /dev/null and b/vcl/qa/cppunit/png/data/pp0n6a08.png differ diff --git a/vcl/qa/cppunit/png/data/ps1n0g08.png b/vcl/qa/cppunit/png/data/ps1n0g08.png new file mode 100644 index 000000000000..99625fa4ba1c Binary files /dev/null and b/vcl/qa/cppunit/png/data/ps1n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/ps1n2c16.png b/vcl/qa/cppunit/png/data/ps1n2c16.png new file mode 100644 index 000000000000..0c7a6b380e9a Binary files /dev/null and b/vcl/qa/cppunit/png/data/ps1n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/ps2n0g08.png b/vcl/qa/cppunit/png/data/ps2n0g08.png new file mode 100644 index 000000000000..90b297968577 Binary files /dev/null and b/vcl/qa/cppunit/png/data/ps2n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/ps2n2c16.png b/vcl/qa/cppunit/png/data/ps2n2c16.png new file mode 100644 index 000000000000..a4a181e4ecfc Binary files /dev/null and b/vcl/qa/cppunit/png/data/ps2n2c16.png differ diff --git a/vcl/qa/cppunit/png/data/s01i3p01.png b/vcl/qa/cppunit/png/data/s01i3p01.png new file mode 100644 index 000000000000..6c0fad1fc982 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s01i3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s01n3p01.png b/vcl/qa/cppunit/png/data/s01n3p01.png new file mode 100644 index 000000000000..cb2c8c78261e Binary files /dev/null and b/vcl/qa/cppunit/png/data/s01n3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s02i3p01.png b/vcl/qa/cppunit/png/data/s02i3p01.png new file mode 100644 index 000000000000..2defaed911a2 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s02i3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s02n3p01.png b/vcl/qa/cppunit/png/data/s02n3p01.png new file mode 100644 index 000000000000..2b1b66964354 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s02n3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s03i3p01.png b/vcl/qa/cppunit/png/data/s03i3p01.png new file mode 100644 index 000000000000..c23fdc463170 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s03i3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s03n3p01.png b/vcl/qa/cppunit/png/data/s03n3p01.png new file mode 100644 index 000000000000..6d96ee4f873b Binary files /dev/null and b/vcl/qa/cppunit/png/data/s03n3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s04i3p01.png b/vcl/qa/cppunit/png/data/s04i3p01.png new file mode 100644 index 000000000000..0e710c2c397e Binary files /dev/null and b/vcl/qa/cppunit/png/data/s04i3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s04n3p01.png b/vcl/qa/cppunit/png/data/s04n3p01.png new file mode 100644 index 000000000000..956396c45b51 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s04n3p01.png differ diff --git a/vcl/qa/cppunit/png/data/s05i3p02.png b/vcl/qa/cppunit/png/data/s05i3p02.png new file mode 100644 index 000000000000..d14cbd351ac1 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s05i3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s05n3p02.png b/vcl/qa/cppunit/png/data/s05n3p02.png new file mode 100644 index 000000000000..bf940f057678 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s05n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s06i3p02.png b/vcl/qa/cppunit/png/data/s06i3p02.png new file mode 100644 index 000000000000..456ada320064 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s06i3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s06n3p02.png b/vcl/qa/cppunit/png/data/s06n3p02.png new file mode 100644 index 000000000000..501064dc25cf Binary files /dev/null and b/vcl/qa/cppunit/png/data/s06n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s07i3p02.png b/vcl/qa/cppunit/png/data/s07i3p02.png new file mode 100644 index 000000000000..44b66bab9e4f Binary files /dev/null and b/vcl/qa/cppunit/png/data/s07i3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s07n3p02.png b/vcl/qa/cppunit/png/data/s07n3p02.png new file mode 100644 index 000000000000..6a582593d654 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s07n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s08i3p02.png b/vcl/qa/cppunit/png/data/s08i3p02.png new file mode 100644 index 000000000000..acf74f3fc413 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s08i3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s08n3p02.png b/vcl/qa/cppunit/png/data/s08n3p02.png new file mode 100644 index 000000000000..b7094e1b4f19 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s08n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s09i3p02.png b/vcl/qa/cppunit/png/data/s09i3p02.png new file mode 100644 index 000000000000..0bfae8e45678 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s09i3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s09n3p02.png b/vcl/qa/cppunit/png/data/s09n3p02.png new file mode 100644 index 000000000000..711ab8245189 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s09n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/s32i3p04.png b/vcl/qa/cppunit/png/data/s32i3p04.png new file mode 100644 index 000000000000..0841910b7277 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s32i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s32n3p04.png b/vcl/qa/cppunit/png/data/s32n3p04.png new file mode 100644 index 000000000000..fa58e3e3f69b Binary files /dev/null and b/vcl/qa/cppunit/png/data/s32n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s33i3p04.png b/vcl/qa/cppunit/png/data/s33i3p04.png new file mode 100644 index 000000000000..ab0dc14aba44 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s33i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s33n3p04.png b/vcl/qa/cppunit/png/data/s33n3p04.png new file mode 100644 index 000000000000..764f1a3dc71f Binary files /dev/null and b/vcl/qa/cppunit/png/data/s33n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s34i3p04.png b/vcl/qa/cppunit/png/data/s34i3p04.png new file mode 100644 index 000000000000..bd99039be4a6 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s34i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s34n3p04.png b/vcl/qa/cppunit/png/data/s34n3p04.png new file mode 100644 index 000000000000..9cbc68b3b9d5 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s34n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s35i3p04.png b/vcl/qa/cppunit/png/data/s35i3p04.png new file mode 100644 index 000000000000..e2a5e0a6595f Binary files /dev/null and b/vcl/qa/cppunit/png/data/s35i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s35n3p04.png b/vcl/qa/cppunit/png/data/s35n3p04.png new file mode 100644 index 000000000000..90b892ebafc5 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s35n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s36i3p04.png b/vcl/qa/cppunit/png/data/s36i3p04.png new file mode 100644 index 000000000000..eb61b6f9a325 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s36i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s36n3p04.png b/vcl/qa/cppunit/png/data/s36n3p04.png new file mode 100644 index 000000000000..b38d179774ce Binary files /dev/null and b/vcl/qa/cppunit/png/data/s36n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s37i3p04.png b/vcl/qa/cppunit/png/data/s37i3p04.png new file mode 100644 index 000000000000..6e2b1e9b79ba Binary files /dev/null and b/vcl/qa/cppunit/png/data/s37i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s37n3p04.png b/vcl/qa/cppunit/png/data/s37n3p04.png new file mode 100644 index 000000000000..4d3054da516a Binary files /dev/null and b/vcl/qa/cppunit/png/data/s37n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s38i3p04.png b/vcl/qa/cppunit/png/data/s38i3p04.png new file mode 100644 index 000000000000..a0a8a140ad7e Binary files /dev/null and b/vcl/qa/cppunit/png/data/s38i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s38n3p04.png b/vcl/qa/cppunit/png/data/s38n3p04.png new file mode 100644 index 000000000000..1233ed048e50 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s38n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s39i3p04.png b/vcl/qa/cppunit/png/data/s39i3p04.png new file mode 100644 index 000000000000..04fee93eae40 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s39i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s39n3p04.png b/vcl/qa/cppunit/png/data/s39n3p04.png new file mode 100644 index 000000000000..c750100d55fb Binary files /dev/null and b/vcl/qa/cppunit/png/data/s39n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s40i3p04.png b/vcl/qa/cppunit/png/data/s40i3p04.png new file mode 100644 index 000000000000..68f358b822b9 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s40i3p04.png differ diff --git a/vcl/qa/cppunit/png/data/s40n3p04.png b/vcl/qa/cppunit/png/data/s40n3p04.png new file mode 100644 index 000000000000..864b6b9673b3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/s40n3p04.png differ diff --git a/vcl/qa/cppunit/png/data/tbbn0g04.png b/vcl/qa/cppunit/png/data/tbbn0g04.png new file mode 100644 index 000000000000..39a7050d27af Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbbn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/tbbn2c16.png b/vcl/qa/cppunit/png/data/tbbn2c16.png new file mode 100644 index 000000000000..dd3168e5c864 Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbbn2c16.png differ diff --git a/vcl/qa/cppunit/png/data/tbbn3p08.png b/vcl/qa/cppunit/png/data/tbbn3p08.png new file mode 100644 index 000000000000..0ede3574db0f Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbbn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/tbgn2c16.png b/vcl/qa/cppunit/png/data/tbgn2c16.png new file mode 100644 index 000000000000..85cec395c01b Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbgn2c16.png differ diff --git a/vcl/qa/cppunit/png/data/tbgn3p08.png b/vcl/qa/cppunit/png/data/tbgn3p08.png new file mode 100644 index 000000000000..8cf2e6fb6aab Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbgn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/tbrn2c08.png b/vcl/qa/cppunit/png/data/tbrn2c08.png new file mode 100644 index 000000000000..5cca0d621047 Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbrn2c08.png differ diff --git a/vcl/qa/cppunit/png/data/tbwn0g16.png b/vcl/qa/cppunit/png/data/tbwn0g16.png new file mode 100644 index 000000000000..99bdeed2b3b8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbwn0g16.png differ diff --git a/vcl/qa/cppunit/png/data/tbwn3p08.png b/vcl/qa/cppunit/png/data/tbwn3p08.png new file mode 100644 index 000000000000..eacab7a144cb Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbwn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/tbyn3p08.png b/vcl/qa/cppunit/png/data/tbyn3p08.png new file mode 100644 index 000000000000..656db0989ad8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/tbyn3p08.png differ diff --git a/vcl/qa/cppunit/png/data/tm3n3p02.png b/vcl/qa/cppunit/png/data/tm3n3p02.png new file mode 100644 index 000000000000..fb3ef1d0c5aa Binary files /dev/null and b/vcl/qa/cppunit/png/data/tm3n3p02.png differ diff --git a/vcl/qa/cppunit/png/data/tp1n3p08.png b/vcl/qa/cppunit/png/data/tp1n3p08.png new file mode 100644 index 000000000000..a6c9f35a8627 Binary files /dev/null and b/vcl/qa/cppunit/png/data/tp1n3p08.png differ diff --git a/vcl/qa/cppunit/png/data/xc1n0g08.png b/vcl/qa/cppunit/png/data/xc1n0g08.png new file mode 100644 index 000000000000..940422737011 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xc1n0g08.png differ diff --git a/vcl/qa/cppunit/png/data/xc9n2c08.png b/vcl/qa/cppunit/png/data/xc9n2c08.png new file mode 100644 index 000000000000..b11c2a7b4049 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xc9n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/xcrn0g04.png b/vcl/qa/cppunit/png/data/xcrn0g04.png new file mode 100644 index 000000000000..48abba193ab3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xcrn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/xcsn0g01.png b/vcl/qa/cppunit/png/data/xcsn0g01.png new file mode 100644 index 000000000000..9863a262caaa Binary files /dev/null and b/vcl/qa/cppunit/png/data/xcsn0g01.png differ diff --git a/vcl/qa/cppunit/png/data/xd0n2c08.png b/vcl/qa/cppunit/png/data/xd0n2c08.png new file mode 100644 index 000000000000..2f001610a85a Binary files /dev/null and b/vcl/qa/cppunit/png/data/xd0n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/xd3n2c08.png b/vcl/qa/cppunit/png/data/xd3n2c08.png new file mode 100644 index 000000000000..9e4a3ff7accf Binary files /dev/null and b/vcl/qa/cppunit/png/data/xd3n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/xd9n2c08.png b/vcl/qa/cppunit/png/data/xd9n2c08.png new file mode 100644 index 000000000000..2c3b91aa4f12 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xd9n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/xdtn0g01.png b/vcl/qa/cppunit/png/data/xdtn0g01.png new file mode 100644 index 000000000000..1a81abef826f Binary files /dev/null and b/vcl/qa/cppunit/png/data/xdtn0g01.png differ diff --git a/vcl/qa/cppunit/png/data/xhdn0g08.png b/vcl/qa/cppunit/png/data/xhdn0g08.png new file mode 100644 index 000000000000..fcb8737fa250 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xhdn0g08.png differ diff --git a/vcl/qa/cppunit/png/data/xlfn0g04.png b/vcl/qa/cppunit/png/data/xlfn0g04.png new file mode 100644 index 000000000000..d9ec53ed94b3 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xlfn0g04.png differ diff --git a/vcl/qa/cppunit/png/data/xs1n0g01.png b/vcl/qa/cppunit/png/data/xs1n0g01.png new file mode 100644 index 000000000000..1817c5144ffa Binary files /dev/null and b/vcl/qa/cppunit/png/data/xs1n0g01.png differ diff --git a/vcl/qa/cppunit/png/data/xs2n0g01.png b/vcl/qa/cppunit/png/data/xs2n0g01.png new file mode 100644 index 000000000000..b8147f2a84b8 Binary files /dev/null and b/vcl/qa/cppunit/png/data/xs2n0g01.png differ diff --git a/vcl/qa/cppunit/png/data/xs4n0g01.png b/vcl/qa/cppunit/png/data/xs4n0g01.png new file mode 100644 index 000000000000..45237a1d294f Binary files /dev/null and b/vcl/qa/cppunit/png/data/xs4n0g01.png differ diff --git a/vcl/qa/cppunit/png/data/xs7n0g01.png b/vcl/qa/cppunit/png/data/xs7n0g01.png new file mode 100644 index 000000000000..3f307f14ea5e Binary files /dev/null and b/vcl/qa/cppunit/png/data/xs7n0g01.png differ diff --git a/vcl/qa/cppunit/png/data/z00n2c08.png b/vcl/qa/cppunit/png/data/z00n2c08.png new file mode 100644 index 000000000000..7669eb838517 Binary files /dev/null and b/vcl/qa/cppunit/png/data/z00n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/z03n2c08.png b/vcl/qa/cppunit/png/data/z03n2c08.png new file mode 100644 index 000000000000..bfb10de8de4f Binary files /dev/null and b/vcl/qa/cppunit/png/data/z03n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/z06n2c08.png b/vcl/qa/cppunit/png/data/z06n2c08.png new file mode 100644 index 000000000000..b90ebc10f5b0 Binary files /dev/null and b/vcl/qa/cppunit/png/data/z06n2c08.png differ diff --git a/vcl/qa/cppunit/png/data/z09n2c08.png b/vcl/qa/cppunit/png/data/z09n2c08.png new file mode 100644 index 000000000000..5f191a78ee56 Binary files /dev/null and b/vcl/qa/cppunit/png/data/z09n2c08.png differ