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

Reply via email to