diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 23b3670d011..c02a396b000 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 7a1f37c5cf6..45f571807c3 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;