diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-27 10:29:42 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-03-27 10:29:42 +0100 |
commit | 9293902f325341f0c188bdf4f662c3a7d949a343 (patch) | |
tree | e27e6981974951597b3ee82219a2273c58320209 /tests | |
parent | 45e7c2b0b2221d1659b480d31d4f596d5ac3f444 (diff) | |
parent | 434aa248ad5710c7f65283fc3beb7e8adb8b1ad7 (diff) | |
download | qtimageformats-9293902f325341f0c188bdf4f662c3a7d949a343.tar.gz |
Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
.qmake.conf
Change-Id: Ie44fe655653166bf5a4436aedd80d060afa45d5a
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/heif/tst_qheif.cpp | 80 | ||||
-rw-r--r-- | tests/shared/images/heif.qrc | 1 | ||||
-rw-r--r-- | tests/shared/images/heif/newlogoCCW.heic | bin | 0 -> 4847 bytes |
3 files changed, 80 insertions, 1 deletions
diff --git a/tests/auto/heif/tst_qheif.cpp b/tests/auto/heif/tst_qheif.cpp index faf22fa..26ddf73 100644 --- a/tests/auto/heif/tst_qheif.cpp +++ b/tests/auto/heif/tst_qheif.cpp @@ -37,6 +37,9 @@ private slots: void initTestCase(); void readImage_data(); void readImage(); + void readProperties_data(); + void readProperties(); + void writeImage(); }; void tst_qheif::initTestCase() @@ -49,8 +52,10 @@ void tst_qheif::readImage_data() { QTest::addColumn<QString>("fileName"); QTest::addColumn<QSize>("size"); + QTest::addColumn<int>("transform"); - QTest::newRow("col") << QString("col320x480.heic") << QSize(320, 480); + QTest::newRow("col") << QString("col320x480.heic") << QSize(320, 480) << int(QImageIOHandler::TransformationNone); + QTest::newRow("rot") << QString("newlogoCCW.heic") << QSize(110, 78) << int(QImageIOHandler::TransformationRotate90); } void tst_qheif::readImage() @@ -66,5 +71,78 @@ void tst_qheif::readImage() QCOMPARE(image.size(), size); } +void tst_qheif::readProperties_data() +{ + readImage_data(); +} + +void tst_qheif::readProperties() +{ + QFETCH(QString, fileName); + QFETCH(QSize, size); + QFETCH(int, transform); + + QSize rawSize = (transform & QImageIOHandler::TransformationRotate90) ? size.transposed() : size; + + QString path = QStringLiteral(":/heif/") + fileName; + QImageReader reader(path); + QCOMPARE(reader.size(), rawSize); + QCOMPARE(int(reader.transformation()), transform); + + QImage image = reader.read(); + QCOMPARE(image.size(), size); + + QCOMPARE(reader.size(), rawSize); + QCOMPARE(int(reader.transformation()), transform); +} + +void tst_qheif::writeImage() +{ + QImage img(20, 10, QImage::Format_ARGB32_Premultiplied); + img.fill(Qt::green); + + QBuffer buf1, buf2; + QImage rimg1; + + { + buf1.open(QIODevice::WriteOnly); + QImageWriter writer(&buf1, "heic"); + QVERIFY(writer.write(img)); + buf1.close(); + QVERIFY(buf1.size() > 0); + + buf1.open(QIODevice::ReadOnly); + QImageReader reader(&buf1); + QVERIFY(reader.read(&rimg1)); + buf1.close(); + QVERIFY(rimg1.size() == img.size()); + } + + { + buf2.open(QIODevice::WriteOnly); + QImageWriter writer(&buf2, "heic"); + writer.setQuality(20); + QVERIFY(writer.write(img)); + buf2.close(); + QVERIFY(buf2.size() > 0); + QVERIFY(buf2.size() < buf1.size()); + } + + { + buf2.open(QIODevice::WriteOnly); + QImageWriter writer(&buf2, "heic"); + writer.setTransformation(QImageIOHandler::TransformationRotate270); + QVERIFY(writer.write(img)); + buf2.close(); + + QImage rimg2; + buf2.open(QIODevice::ReadOnly); + QImageReader reader(&buf2); + QVERIFY(reader.read(&rimg2)); + buf2.close(); + QVERIFY(rimg2.size() == img.size().transposed()); + } +} + QTEST_MAIN(tst_qheif) #include "tst_qheif.moc" diff --git a/tests/shared/images/heif.qrc b/tests/shared/images/heif.qrc index 2a41c36..8232b6a 100644 --- a/tests/shared/images/heif.qrc +++ b/tests/shared/images/heif.qrc @@ -1,5 +1,6 @@ <RCC> <qresource prefix="/"> <file>heif/col320x480.heic</file> + <file>heif/newlogoCCW.heic</file> </qresource> </RCC> diff --git a/tests/shared/images/heif/newlogoCCW.heic b/tests/shared/images/heif/newlogoCCW.heic Binary files differnew file mode 100644 index 0000000..1604947 --- /dev/null +++ b/tests/shared/images/heif/newlogoCCW.heic |