summaryrefslogtreecommitdiffstats
path: root/src/gui/image
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-09-20 11:37:26 +0200
committerLiang Qi <liang.qi@qt.io>2017-09-20 11:58:32 +0200
commit01bc69f99f189b03d0b9cad77cc300798937cad1 (patch)
tree730f3b691cfc1830ec617b3c2ad8df16180de724 /src/gui/image
parentc23c4a921d0e9e2d18a62af82d38ca27eac7bcb3 (diff)
parent6d699d08200b1fe3a616dfbc275d46c98b77fcbd (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts: src/plugins/styles/mac/qmacstyle_mac.mm src/widgets/util/qcompleter.cpp src/widgets/widgets/qmainwindowlayout.cpp src/widgets/widgets/qmdisubwindow.cpp Change-Id: If0e96981af07ce36ac68f2e69211bc2120f93973
Diffstat (limited to 'src/gui/image')
-rw-r--r--src/gui/image/qimage.cpp23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 4412e722f6..097033280a 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -2113,8 +2113,8 @@ static QImage convertWithPalette(const QImage &src, QImage::Format format,
Returns a copy of the image converted to the given \a format,
using the specified \a colorTable.
- Conversion from 32 bit to 8 bit indexed is a slow operation and
- will use a straightforward nearest color approach, with no
+ Conversion from RGB formats to indexed formats is a slow operation
+ and will use a straightforward nearest color approach, with no
dithering.
*/
QImage QImage::convertToFormat(Format format, const QVector<QRgb> &colorTable, Qt::ImageConversionFlags flags) const
@@ -2122,23 +2122,12 @@ QImage QImage::convertToFormat(Format format, const QVector<QRgb> &colorTable, Q
if (!d || d->format == format)
return *this;
- if (format <= QImage::Format_Indexed8 && depth() == 32) {
- return convertWithPalette(*this, format, colorTable);
- }
-
- const Image_Converter *converterPtr = &qimage_converter_map[d->format][format];
- Image_Converter converter = *converterPtr;
- if (!converter)
+ if (format == QImage::Format_Invalid)
return QImage();
+ if (format <= QImage::Format_Indexed8)
+ return convertWithPalette(convertToFormat(QImage::Format_ARGB32, flags), format, colorTable);
- QImage image(d->width, d->height, format);
- QIMAGE_SANITYCHECK_MEMORY(image);
-
- image.d->offset = offset();
- copyMetadata(image.d, d);
-
- converter(image.d, d, flags);
- return image;
+ return convertToFormat(format, flags);
}
/*!