summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-19 14:46:20 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-31 21:47:17 +0200
commitdcc4d54fc9340fcbed3ffddbe1cf99e6ca70d4f9 (patch)
treee3957da93fb93f8c2fc774aa0d4ab35360ec9863 /tests/auto
parenta2c1109152a8afe40d420342cf20a3f84f483e92 (diff)
Parse color space name from ICC profile
Adds parsing of ICCv2 and ICCv4 description tags. Change-Id: I8647e1529d4127950624f16c475d8dba610149b6 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/gui/painting/qcolorspace/resources/HP_ZR30w.iccbin0 -> 1856 bytes
-rw-r--r--tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp38
2 files changed, 28 insertions, 10 deletions
diff --git a/tests/auto/gui/painting/qcolorspace/resources/HP_ZR30w.icc b/tests/auto/gui/painting/qcolorspace/resources/HP_ZR30w.icc
new file mode 100644
index 0000000000..b3f860714c
--- /dev/null
+++ b/tests/auto/gui/painting/qcolorspace/resources/HP_ZR30w.icc
Binary files differ
diff --git a/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp b/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp
index b82a56dbf8..291a25fede 100644
--- a/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp
+++ b/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp
@@ -53,6 +53,7 @@ private slots:
void toIccProfile_data();
void toIccProfile();
+ void fromIccProfile_data();
void fromIccProfile();
void imageConversion_data();
@@ -142,21 +143,38 @@ void tst_QColorSpace::toIccProfile()
QCOMPARE(iccProfile2, iccProfile);
}
-void tst_QColorSpace::fromIccProfile()
+void tst_QColorSpace::fromIccProfile_data()
{
- // Read the official sRGB ICCv2 profile:
+ QTest::addColumn<QString>("testProfile");
+ QTest::addColumn<QColorSpace::ColorSpaceId>("colorSpaceId");
+ QTest::addColumn<QColorSpace::TransferFunction>("transferFunction");
+ QTest::addColumn<QString>("description");
+
QString prefix = QFINDTESTDATA("resources/");
- QFile file(prefix + "sRGB2014.icc");
+ // Read the official sRGB ICCv2 profile:
+ QTest::newRow("sRGB2014 (ICCv2)") << prefix + "sRGB2014.icc" << QColorSpace::SRgb
+ << QColorSpace::TransferFunction::SRgb << QString("sRGB2014");
+ // My monitor's profile:
+ QTest::newRow("HP ZR30w (ICCv4)") << prefix + "HP_ZR30w.icc" << QColorSpace::Unknown
+ << QColorSpace::TransferFunction::Gamma << QString("HP Z30i");
+}
+
+void tst_QColorSpace::fromIccProfile()
+{
+ QFETCH(QString, testProfile);
+ QFETCH(QColorSpace::ColorSpaceId, colorSpaceId);
+ QFETCH(QColorSpace::TransferFunction, transferFunction);
+ QFETCH(QString, description);
+
+ QFile file(testProfile);
file.open(QIODevice::ReadOnly);
QByteArray iccProfile = file.readAll();
- QColorSpace stdSRgb = QColorSpace::fromIccProfile(iccProfile);
- QVERIFY(stdSRgb.isValid());
-
- QCOMPARE(stdSRgb.gamut(), QColorSpace::Gamut::SRgb);
- QCOMPARE(stdSRgb.transferFunction(), QColorSpace::TransferFunction::SRgb);
- QCOMPARE(stdSRgb.colorSpaceId(), QColorSpace::SRgb);
+ QColorSpace fileColorSpace = QColorSpace::fromIccProfile(iccProfile);
+ QVERIFY(fileColorSpace.isValid());
- QCOMPARE(stdSRgb, QColorSpace(QColorSpace::SRgb));
+ QCOMPARE(fileColorSpace.colorSpaceId(), colorSpaceId);
+ QCOMPARE(fileColorSpace.transferFunction(), transferFunction);
+ QCOMPARE(QColorSpacePrivate::get(fileColorSpace)->description, description);
}
void tst_QColorSpace::imageConversion_data()