Commit e2e023dfa for imagemagick.org

commit e2e023dfa33df284ea1cbe3f068e1003e92f8ce7
Author: Madars <mad182@gmail.com>
Date:   Tue Mar 24 13:54:06 2026 +0200

    Set BackgroundDispose for animated JXL frames with alpha (#8635)

    JXL delivers fully coalesced frames where each frame is a complete
    independent image. Without setting dispose, converting transparent
    animated JXL to GIF/WebP/MNG causes frames to accumulate instead
    of replacing, making previous frames bleed through transparent areas.

diff --git a/coders/jxl.c b/coders/jxl.c
index 971b4b6d0..a40583713 100644
--- a/coders/jxl.c
+++ b/coders/jxl.c
@@ -48,6 +48,7 @@
 #include "MagickCore/exception-private.h"
 #include "MagickCore/image.h"
 #include "MagickCore/image-private.h"
+#include "MagickCore/layer.h"
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
@@ -644,6 +645,9 @@ static Image *ReadJXLImage(const ImageInfo *image_info,
         (void) memset(&frame_header,0,sizeof(frame_header));
         if (JxlDecoderGetFrameHeader(jxl_info,&frame_header) == JXL_DEC_SUCCESS)
           image->delay=(size_t) frame_header.duration;
+        if ((basic_info.have_animation == JXL_TRUE) &&
+            (basic_info.alpha_bits != 0))
+          image->dispose=BackgroundDispose;
         break;
       }
       case JXL_DEC_NEED_IMAGE_OUT_BUFFER: