From e81acde7d0cf5fb44a3fb2cf0bf7aaa2c65f807e Mon Sep 17 00:00:00 2001 From: Mikhail Svetkin Date: Tue, 20 Nov 2018 18:36:46 +0500 Subject: Introduce QImage::convertTo QImage::convertTo can be used to change the format of an image in place. [ChangeLog][QtGui][QImage] A new method convertTo is has been added to change the format of a QImage in place. Change-Id: Ib31379085c4b97e56c3cb569f144062bcd3fdc20 Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Eirik Aavitsland --- src/gui/image/qimage.cpp | 23 +++++++++++++++++++++++ src/gui/image/qimage.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 23b3670d01..c02a396b00 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -2242,6 +2242,29 @@ bool QImage::reinterpretAsFormat(Format format) return true; } +/*! + \since 5.13 + + Detach and convert the image to the given \a format in place. + + The specified image conversion \a flags control how the image data + is handled during the conversion process. + + \sa convertToFormat() +*/ + +void QImage::convertTo(Format f, Qt::ImageConversionFlags flags) +{ + if (!d || f == QImage::Format_Invalid) + return; + + detach(); + if (convertToFormat_inplace(f, flags)) + return; + + *this = convertToFormat_helper(f, flags); +} + /*! \fn bool QImage::valid(const QPoint &pos) const diff --git a/src/gui/image/qimage.h b/src/gui/image/qimage.h index 7a1f37c5cf..45f571807c 100644 --- a/src/gui/image/qimage.h +++ b/src/gui/image/qimage.h @@ -196,6 +196,8 @@ public: Q_REQUIRED_RESULT QImage convertToFormat(Format f, const QVector &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const; bool reinterpretAsFormat(Format f); + void convertTo(Format f, Qt::ImageConversionFlags flags = Qt::AutoColor); + int width() const; int height() const; QSize size() const; -- cgit v1.2.3