diff --git a/ui/image/image_prepare.cpp b/ui/image/image_prepare.cpp index 5419eb4..e7c48e9 100644 --- a/ui/image/image_prepare.cpp +++ b/ui/image/image_prepare.cpp @@ -506,7 +506,7 @@ ReadResult Read(ReadArgs &&args) { : Option::None); } -QImage Blur(QImage &&image) { +QImage Blur(QImage &&image, bool ignoreAlpha) { if (image.isNull()) { return std::move(image); } @@ -532,7 +532,7 @@ QImage Blur(QImage &&image) { if (radius >= 16 || div >= w || div >= h || stride > w * 4) { return std::move(image); } - const auto withalpha = image.hasAlphaChannel(); + const auto withalpha = !ignoreAlpha && image.hasAlphaChannel(); if (withalpha) { auto smaller = QImage(image.size(), image.format()); { diff --git a/ui/image/image_prepare.h b/ui/image/image_prepare.h index 2efb6a7..b1a165d 100644 --- a/ui/image/image_prepare.h +++ b/ui/image/image_prepare.h @@ -100,7 +100,7 @@ inline constexpr auto is_flag_type(Option) { return true; }; ImageRoundRadius radius, RectParts corners = RectPart::AllCorners); -[[nodiscard]] QImage Blur(QImage &&image); +[[nodiscard]] QImage Blur(QImage &&image, bool ignoreAlpha = false); [[nodiscard]] QImage Round( QImage &&image, ImageRoundRadius radius,