From 3337c33a86185d54dc9ccf948df95ba83667c201 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Mon, 28 Feb 2022 21:43:02 +0200 Subject: [PATCH] simplify raster pixmap creation from image Signed-off-by: Ivailo Monev --- src/gui/image/qpixmap_raster.cpp | 23 +++-------------------- src/gui/image/qpixmapfilter.cpp | 4 ++-- src/gui/image/qpnghandler.cpp | 4 ++-- 3 files changed, 7 insertions(+), 24 deletions(-) diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp index 2214da711..83a50bb2f 100644 --- a/src/gui/image/qpixmap_raster.cpp +++ b/src/gui/image/qpixmap_raster.cpp @@ -86,28 +86,11 @@ bool QRasterPixmapData::fromData(const uchar *buffer, uint len, const char *form void QRasterPixmapData::fromImage(const QImage &sourceImage, Qt::ImageConversionFlags flags) { - QImage::Format format; + QImage::Format format = QImage::Format_ARGB32_Premultiplied; if (pixelType() == BitmapType) { format = QImage::Format_MonoLSB; - } else { - if (sourceImage.depth() == 1) { - format = sourceImage.hasAlphaChannel() - ? QImage::Format_ARGB32_Premultiplied - : QImage::Format_RGB32; - } else { - QImage::Format opaqueFormat = QImage::systemFormat(); - QImage::Format alphaFormat = QImage::Format_ARGB32_Premultiplied; - - if (!sourceImage.hasAlphaChannel()) { - format = opaqueFormat; - } else if ((flags & Qt::NoOpaqueDetection) == 0 - && !sourceImage.d->checkForAlphaPixels()) - { - format = opaqueFormat; - } else { - format = alphaFormat; - } - } + } else if ((flags & Qt::NoOpaqueDetection) == 0 && !sourceImage.d->checkForAlphaPixels()) { + format = QImage::systemFormat(); } image = sourceImage.convertToFormat(format); diff --git a/src/gui/image/qpixmapfilter.cpp b/src/gui/image/qpixmapfilter.cpp index afac872c7..787a25df8 100644 --- a/src/gui/image/qpixmapfilter.cpp +++ b/src/gui/image/qpixmapfilter.cpp @@ -659,13 +659,13 @@ void QPixmapColorizeFilter::draw(QPainter *painter, const QPointF &dest, const Q if (srcRect.isNull()) { srcImage = src.toImage(); - srcImage = srcImage.convertToFormat(srcImage.hasAlphaChannel() ? QImage::Format_ARGB32_Premultiplied : QImage::Format_RGB32); + srcImage = srcImage.convertToFormat(srcImage.hasAlphaChannel() ? QImage::Format_ARGB32_Premultiplied : QImage::systemFormat()); destImage = QImage(srcImage.size(), srcImage.format()); } else { QRect rect = srcRect.toAlignedRect().intersected(src.rect()); srcImage = src.copy(rect).toImage(); - srcImage = srcImage.convertToFormat(srcImage.hasAlphaChannel() ? QImage::Format_ARGB32_Premultiplied : QImage::Format_RGB32); + srcImage = srcImage.convertToFormat(srcImage.hasAlphaChannel() ? QImage::Format_ARGB32_Premultiplied : QImage::systemFormat()); destImage = QImage(rect.size(), srcImage.format()); } diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index 5793e693d..25f3d1701 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -108,7 +108,7 @@ bool QPngHandler::read(QImage *image) return false; } - png_struct *png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,0,0,0); + png_struct *png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); if (!png_ptr) { return false; } @@ -204,7 +204,7 @@ bool QPngHandler::write(const QImage &image) QImage copy = image.convertToFormat(image.hasAlphaChannel() ? QImage::Format_ARGB32 : QImage::Format_RGB32); const int height = copy.height(); - png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,0,0,0); + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); if (!png_ptr) { return false; } -- 2.11.0