From e6d62d019a75b8d14974446ee06697dd02426a6b Mon Sep 17 00:00:00 2001 From: Socolin Date: Fri, 19 Dec 2025 14:02:47 -0500 Subject: [PATCH] Make sure pixel values are float between 0 and 1 during processing of ApplyRgbaCompatibleIccProfile --- src/ImageSharp/Formats/Png/PngDecoderCore.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp/Formats/Png/PngDecoderCore.cs index 5ad2682335..9da5330778 100644 --- a/src/ImageSharp/Formats/Png/PngDecoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngDecoderCore.cs @@ -2174,7 +2174,8 @@ internal sealed class PngDecoderCore : ImageDecoderCore ColorProfileConverter converter = new(options); - image.Mutate(o => o.ProcessPixelRowsAsVector4((pixelsRow, _) => + image.Mutate(o => o.ProcessPixelRowsAsVector4( + (pixelsRow, _) => { using IMemoryOwner rgbBuffer = image.Configuration.MemoryAllocator.Allocate(pixelsRow.Length); Span rgbPacked = rgbBuffer.Memory.Span; @@ -2190,6 +2191,7 @@ internal sealed class PngDecoderCore : ImageDecoderCore { Unsafe.As(ref Unsafe.Add(ref pixelsRowAsFloatsRef, cIdx)) = rgbPacked[x]; } - })); + }, + PixelConversionModifiers.Scale)); } }