From c43b6365d057c6e3302778ebd9ee9c21f49452b9 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 2 Feb 2026 12:46:03 +1000 Subject: [PATCH] Ensure palette is always captured. --- .../Formats/Tiff/TiffDecoderCore.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ImageSharp/Formats/Tiff/TiffDecoderCore.cs b/src/ImageSharp/Formats/Tiff/TiffDecoderCore.cs index 5705e2a545..1822cb8d15 100644 --- a/src/ImageSharp/Formats/Tiff/TiffDecoderCore.cs +++ b/src/ImageSharp/Formats/Tiff/TiffDecoderCore.cs @@ -584,6 +584,15 @@ internal class TiffDecoderCore : ImageDecoderCore } } + { + // If the color decoder is the palette decoder we need to capture its palette. + if (colorDecoder is PaletteTiffColor paletteDecoder) + { + TiffFrameMetadata tiffFrameMetadata = frame.Metadata.GetTiffMetadata(); + tiffFrameMetadata.LocalColorTable = paletteDecoder.PaletteColors; + } + } + return; } @@ -621,11 +630,13 @@ internal class TiffDecoderCore : ImageDecoderCore colorDecoder.Decode(stripBufferSpan, pixels, 0, top, width, stripHeight); } - // If the color decoder is the palette decoder we need to capture its palette. - if (colorDecoder is PaletteTiffColor paletteDecoder) { - TiffFrameMetadata tiffFrameMetadata = frame.Metadata.GetTiffMetadata(); - tiffFrameMetadata.LocalColorTable = paletteDecoder.PaletteColors; + // If the color decoder is the palette decoder we need to capture its palette. + if (colorDecoder is PaletteTiffColor paletteDecoder) + { + TiffFrameMetadata tiffFrameMetadata = frame.Metadata.GetTiffMetadata(); + tiffFrameMetadata.LocalColorTable = paletteDecoder.PaletteColors; + } } }