summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2019-12-19 14:10:54 +0100
committerEirik Aavitsland <eirik.aavitsland@qt.io>2019-12-20 10:12:39 +0100
commit6124b900d9507687c21e43e68f495bbee9d8d45b (patch)
tree7b4226ee9f58d06f0de1187ef0fd1ce96faee09a /tests
parentfe11f37ca0d18c0025097a54c1331af25285d6fe (diff)
Add support for reading BigTIFF
All recent versions of libtiff has support for the 64bit-indexed BigTIFF format. Allow reading it by recognizing its magic number. [ChangeLog][TIFF] Add support for reading BigTIFF Fixes: QTBUG-80538 Change-Id: I7fcb72d77e4a0bdcb38ab96e9f6cfaff7cf4ad49 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/tiff/tst_qtiff.cpp29
-rw-r--r--tests/shared/images/tiff.qrc4
-rw-r--r--tests/shared/images/tiff/big_16bpc.tiffbin0 -> 21548 bytes
-rw-r--r--tests/shared/images/tiff/big_grayscale.tiffbin0 -> 4581 bytes
-rw-r--r--tests/shared/images/tiff/big_rgb.tiffbin0 -> 12748 bytes
-rw-r--r--tests/shared/images/tiff/big_rgb_bigendian.tiffbin0 -> 12748 bytes
6 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/tiff/tst_qtiff.cpp b/tests/auto/tiff/tst_qtiff.cpp
index be02460..e411f66 100644
--- a/tests/auto/tiff/tst_qtiff.cpp
+++ b/tests/auto/tiff/tst_qtiff.cpp
@@ -90,6 +90,9 @@ private slots:
void colorSpace_data();
void colorSpace();
+ void bigtiff_data();
+ void bigtiff();
+
private:
QString prefix;
};
@@ -173,6 +176,10 @@ void tst_qtiff::readImage_data()
QTest::newRow("tiled_oddsize_mono") << QString("tiled_oddsize_mono.tiff") << QSize(59, 71);
QTest::newRow("16bpc") << QString("16bpc.tiff") << QSize(64, 46);
QTest::newRow("gray16") << QString("gray16.tiff") << QSize(64, 46);
+ QTest::newRow("big_rgb") << QString("big_rgb.tiff") << QSize(64, 64);
+ QTest::newRow("big_rgb_bigendian") << QString("big_rgb_bigendian.tiff") << QSize(64, 64);
+ QTest::newRow("big_grayscale") << QString("big_grayscale.tiff") << QSize(64, 64);
+ QTest::newRow("big_16bpc") << QString("big_16bpc.tiff") << QSize(64, 46);
}
void tst_qtiff::readImage()
@@ -665,5 +672,27 @@ void tst_qtiff::colorSpace()
QCOMPARE(image2, image);
}
+void tst_qtiff::bigtiff_data()
+{
+ QTest::addColumn<QString>("expectedFile");
+ QTest::addColumn<QString>("bigtiffFile");
+
+ QTest::newRow("big_rgb") << QString("original_rgb.tiff") << QString("big_rgb.tiff");
+ QTest::newRow("big_rgb_bigendian") << QString("original_rgb.tiff") << QString("big_rgb_bigendian.tiff");
+ QTest::newRow("big_grayscale") << QString("original_grayscale.tiff") << QString("big_grayscale.tiff");
+ QTest::newRow("big_16bpc") << QString("16bpc.tiff") << QString("big_16bpc.tiff");
+}
+
+void tst_qtiff::bigtiff()
+{
+ QFETCH(QString, expectedFile);
+ QFETCH(QString, bigtiffFile);
+
+ QImage expectedImage(prefix + expectedFile);
+ QImage bigtiffImage(prefix + bigtiffFile);
+ QVERIFY(!bigtiffImage.isNull());
+ QCOMPARE(expectedImage, bigtiffImage);
+}
+
QTEST_MAIN(tst_qtiff)
#include "tst_qtiff.moc"
diff --git a/tests/shared/images/tiff.qrc b/tests/shared/images/tiff.qrc
index e1ce9da..2c876af 100644
--- a/tests/shared/images/tiff.qrc
+++ b/tests/shared/images/tiff.qrc
@@ -52,5 +52,9 @@
<file>tiff/oddsize_mono.tiff</file>
<file>tiff/tiled_rgb.tiff</file>
<file>tiff/gray16.tiff</file>
+ <file>tiff/big_rgb.tiff</file>
+ <file>tiff/big_16bpc.tiff</file>
+ <file>tiff/big_grayscale.tiff</file>
+ <file>tiff/big_rgb_bigendian.tiff</file>
</qresource>
</RCC>
diff --git a/tests/shared/images/tiff/big_16bpc.tiff b/tests/shared/images/tiff/big_16bpc.tiff
new file mode 100644
index 0000000..09f949c
--- /dev/null
+++ b/tests/shared/images/tiff/big_16bpc.tiff
Binary files differ
diff --git a/tests/shared/images/tiff/big_grayscale.tiff b/tests/shared/images/tiff/big_grayscale.tiff
new file mode 100644
index 0000000..244f8fc
--- /dev/null
+++ b/tests/shared/images/tiff/big_grayscale.tiff
Binary files differ
diff --git a/tests/shared/images/tiff/big_rgb.tiff b/tests/shared/images/tiff/big_rgb.tiff
new file mode 100644
index 0000000..18eecf2
--- /dev/null
+++ b/tests/shared/images/tiff/big_rgb.tiff
Binary files differ
diff --git a/tests/shared/images/tiff/big_rgb_bigendian.tiff b/tests/shared/images/tiff/big_rgb_bigendian.tiff
new file mode 100644
index 0000000..0d1a11f
--- /dev/null
+++ b/tests/shared/images/tiff/big_rgb_bigendian.tiff
Binary files differ