diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-03-17 13:33:50 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-04-18 08:01:54 +0000 |
commit | acb67561a3753306a2262f7221baca2d727fd4cb (patch) | |
tree | c890a9e7f90382bf60db4c22abc8f778d13a84f5 /tests | |
parent | 7b267bd3858743af32c30dcbd84c0e5dc11da0ba (diff) |
Add imageToHBITMAP(), imageFromHBITMAP()
Add new functions for image conversions wrapping their QtGui
equivalents.
[ChangeLog][QtWin] Added functions imageToHBITMAP()
and imageFromHBITMAP() for conversion between QImage and HBITMAP,
preserving the format where possible.
Task-number: QTBUG-51124
Change-Id: I212b2dff182dce3a9b08753b6435d01b75bb5434
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qpixmap/tst_qpixmap.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 8a63e25..8383194 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -29,6 +29,7 @@ #include <QtTest/QtTest> #include <QtCore/qt_windows.h> #include <QtCore/QFileInfo> +#include <QtGui/QPainter> #include <QtGui/QPixmap> #include <QtGui/QImage> #include <QtWinExtras/QtWin> @@ -53,6 +54,8 @@ private slots: void fromHICON_data(); void fromHICON(); + void imageConversion(); + private: const QString m_dataDirectory; }; @@ -279,6 +282,21 @@ void tst_QPixmap::fromHICON() QVERIFY2(compareImages(imageFromHICON, imageFromFile, &errorMessage), errorMessage.constData()); } +void tst_QPixmap::imageConversion() +{ + // Extensive testing of all formats is done in QtGui; this merely tests + // the exports/linkage. + QImage image(73, 57, QImage::Format_ARGB32_Premultiplied); + image.fill(Qt::red); + QPainter painter(&image); + painter.drawLine(0, 0, image.width(), image.height()); + const HBITMAP hBitMap = QtWin::imageToHBITMAP(image); + QVERIFY(hBitMap); + const QImage fromHBitMap = QtWin::imageFromHBITMAP(hBitMap, QtWin::HBitmapPremultipliedAlpha); + QCOMPARE(fromHBitMap, image); + DeleteObject(hBitMap); +} + QTEST_MAIN(tst_QPixmap) #include "tst_qpixmap.moc" |