From 2e63c6103e3b23bfcd65dcb8afb19c020511b168 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 5 Sep 2022 18:55:17 +0400 Subject: [PATCH] Allow strictly blurring images with alpha. --- ui/image/image_prepare.cpp | 4 ++-- ui/image/image_prepare.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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,