From 2ca57c9c59c61da2facac2d439a9dbf64f5f61a9 Mon Sep 17 00:00:00 2001 From: Mirco Miranda Date: Wed, 10 May 2023 15:34:14 +0200 Subject: [PATCH] Avoid unnecessary conversions (cherry picked from commit edd6adcbac2e3ffb385e6a7b15d68d6dee7c1d86) --- src/imageformats/rgb.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/imageformats/rgb.cpp b/src/imageformats/rgb.cpp index 7f758dd..cb54072 100644 --- a/src/imageformats/rgb.cpp +++ b/src/imageformats/rgb.cpp @@ -672,12 +672,15 @@ bool SGIImage::writeImage(const QImage &image) _dim = 3, _zsize = 3; } - if (img.hasAlphaChannel()) { + auto hasAlpha = img.hasAlphaChannel(); + if (hasAlpha) { _dim = 3, _zsize++; } - if (img.format() != QImage::Format_ARGB32) { + if (hasAlpha && img.format() != QImage::Format_ARGB32) { img = img.convertToFormat(QImage::Format_ARGB32); + } else if (!hasAlpha && img.format() != QImage::Format_RGB32) { + img = img.convertToFormat(QImage::Format_RGB32); } if (img.isNull()) { // qDebug() << "can't convert image to depth 32";