From 2842212e88afb200a0fcfda7d306c4e8eee26407 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 21 Jun 2018 16:52:41 +0200 Subject: Add RGBA64 format support to TIFF plugin TIFF is one of the primary formats for HDR images. Change-Id: I5310b5c9a625fd3e759e5120be6ba547c633c81c Reviewed-by: Eirik Aavitsland --- tests/auto/tiff/tst_qtiff.cpp | 17 +++++++++++++++++ tests/shared/images/tiff.qrc | 1 + tests/shared/images/tiff/16bpc.tiff | Bin 0 -> 21414 bytes 3 files changed, 18 insertions(+) create mode 100644 tests/shared/images/tiff/16bpc.tiff (limited to 'tests') diff --git a/tests/auto/tiff/tst_qtiff.cpp b/tests/auto/tiff/tst_qtiff.cpp index 1a96ab3..9c815d5 100644 --- a/tests/auto/tiff/tst_qtiff.cpp +++ b/tests/auto/tiff/tst_qtiff.cpp @@ -84,6 +84,8 @@ private slots: void tiled_data(); void tiled(); + void readRgba64(); + private: QString prefix; }; @@ -165,6 +167,7 @@ void tst_qtiff::readImage_data() QTest::newRow("tiled_mono") << QString("tiled_mono.tiff") << QSize(64, 64); QTest::newRow("tiled_oddsize_grayscale") << QString("tiled_oddsize_grayscale.tiff") << QSize(59, 71); QTest::newRow("tiled_oddsize_mono") << QString("tiled_oddsize_mono.tiff") << QSize(59, 71); + QTest::newRow("16bpc") << QString("16bpc.tiff") << QSize(64, 46); } void tst_qtiff::readImage() @@ -384,6 +387,9 @@ void tst_qtiff::readWriteNonDestructive_data() QTest::newRow("tiff argb32pm") << QImage::Format_ARGB32_Premultiplied << QImage::Format_ARGB32_Premultiplied << QImageIOHandler::TransformationRotate90; QTest::newRow("tiff rgb32") << QImage::Format_RGB32 << QImage::Format_RGB32 << QImageIOHandler::TransformationRotate270; QTest::newRow("tiff grayscale") << QImage::Format_Grayscale8 << QImage::Format_Grayscale8 << QImageIOHandler::TransformationFlip; + QTest::newRow("tiff rgb64") << QImage::Format_RGBX64 << QImage::Format_RGBX64 << QImageIOHandler::TransformationNone; + QTest::newRow("tiff rgba64") << QImage::Format_RGBA64 << QImage::Format_RGBA64 << QImageIOHandler::TransformationRotate90; + QTest::newRow("tiff rgba64pm") << QImage::Format_RGBA64_Premultiplied << QImage::Format_RGBA64_Premultiplied << QImageIOHandler::TransformationNone; } void tst_qtiff::readWriteNonDestructive() @@ -592,5 +598,16 @@ void tst_qtiff::tiled() QCOMPARE(expectedImage, tiledImage); } +void tst_qtiff::readRgba64() +{ + QString path = prefix + QString("16bpc.tiff"); + QImageReader reader(path); + QVERIFY(reader.canRead()); + QCOMPARE(reader.imageFormat(), QImage::Format_RGBX64); + QImage image = reader.read(); + QVERIFY(!image.isNull()); + QCOMPARE(image.format(), QImage::Format_RGBX64); +} + QTEST_MAIN(tst_qtiff) #include "tst_qtiff.moc" diff --git a/tests/shared/images/tiff.qrc b/tests/shared/images/tiff.qrc index 19675ba..91bbf93 100644 --- a/tests/shared/images/tiff.qrc +++ b/tests/shared/images/tiff.qrc @@ -1,5 +1,6 @@ + tiff/16bpc.tiff tiff/corrupt-data.tif tiff/grayscale-ref.tif tiff/grayscale.tif diff --git a/tests/shared/images/tiff/16bpc.tiff b/tests/shared/images/tiff/16bpc.tiff new file mode 100644 index 0000000..b1ecf26 Binary files /dev/null and b/tests/shared/images/tiff/16bpc.tiff differ -- cgit v1.2.1