Commit 10156885f for imagemagick.org
commit 10156885f0a15094d354fc10515b43b7a4bd7eec
Author: Dirk Lemstra <dirk@lemstra.org>
Date: Thu Jun 4 20:53:50 2026 +0200
Make sure the mask is properly respected when setting the alpha channel (#8778)
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 46975944f..58f0b1555 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -2388,6 +2388,9 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
MagickBooleanType
status;
+ PixelTrait
+ original_mask;
+
ssize_t
y;
@@ -2396,6 +2399,9 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
image->alpha_trait=BlendPixelTrait;
+ /* Disable mask to make sure that all pixels are changed */
+ original_mask=image->mask_trait;
+ image->mask_trait=UndefinedPixelTrait;
status=MagickTrue;
image_view=AcquireAuthenticCacheView(image,exception);
#if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -2428,6 +2434,7 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha,
status=MagickFalse;
}
image_view=DestroyCacheView(image_view);
+ image->mask_trait=original_mask;
return(status);
}