From c3892b017c400cf19aeb77e67084dc22979e17c8 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Thu, 10 Nov 2022 18:00:31 +0200 Subject: [PATCH] pass the pixel type to makeBitmapCompliantIfNeeded() function Signed-off-by: Ivailo Monev --- src/gui/image/qpixmapdata.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/gui/image/qpixmapdata.cpp b/src/gui/image/qpixmapdata.cpp index 8b64f6e57..2e105d2d8 100644 --- a/src/gui/image/qpixmapdata.cpp +++ b/src/gui/image/qpixmapdata.cpp @@ -30,6 +30,23 @@ QT_BEGIN_NAMESPACE +static QImage makeBitmapCompliantIfNeeded(QPixmapData::PixelType type, const QImage &image, Qt::ImageConversionFlags flags) +{ + if (type == QPixmapData::BitmapType) { + QImage img = image.convertToFormat(QImage::Format_MonoLSB, flags); + + // make sure image.color(0) == Qt::color0 (white) + // and image.color(1) == Qt::color1 (black) + if (img.color(0) == qt_blackrgb && img.color(1) == qt_whitergb) { + img.invertPixels(); + img.setColor(0, qt_whitergb); + img.setColor(1, qt_blackrgb); + } + return img; + } + return image; +} + QPixmapData *QPixmapData::create(int w, int h, PixelType type) { QPixmapData *data = new QPixmapData(type); @@ -55,24 +72,6 @@ QPixmapData *QPixmapData::createCompatiblePixmapData() const return new QPixmapData(pixelType()); } -static QImage makeBitmapCompliantIfNeeded(QPixmapData *d, const QImage &image, Qt::ImageConversionFlags flags) -{ - if (d->pixelType() == QPixmapData::BitmapType) { - QImage img = image.convertToFormat(QImage::Format_MonoLSB, flags); - - // make sure image.color(0) == Qt::color0 (white) - // and image.color(1) == Qt::color1 (black) - if (img.color(0) == qt_blackrgb && img.color(1) == qt_whitergb) { - img.invertPixels(); - img.setColor(0, qt_whitergb); - img.setColor(1, qt_blackrgb); - } - return img; - } - - return image; -} - void QPixmapData::fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags) { @@ -89,7 +88,7 @@ bool QPixmapData::fromFile(const QString &fileName, const char *format, QImage image = QImageReader(fileName, format).read(); if (image.isNull()) return false; - fromImage(makeBitmapCompliantIfNeeded(this, image, flags), flags); + fromImage(makeBitmapCompliantIfNeeded(pixelType(), image, flags), flags); return !isNull(); } -- 2.11.0