From 71d49346051799f41f29be08518dda365179405d Mon Sep 17 00:00:00 2001 From: "Adam D. Ruppe" Date: Tue, 27 May 2025 12:51:52 -0400 Subject: [PATCH] fix average filter of first line --- png.d | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/png.d b/png.d index 5aa9f01..67b1e8a 100644 --- a/png.d +++ b/png.d @@ -2109,11 +2109,11 @@ immutable(ubyte)[] unfilter(ubyte filterType, in ubyte[] data, in ubyte[] previo return assumeUnique(arr); case 3: auto arr = data.dup; - if(previousLine.length) foreach(i; 0 .. arr.length) { - auto prev = i < bpp ? 0 : arr[i - bpp]; - arr[i] += cast(ubyte) - /*std.math.floor*/( cast(int) (prev + (previousLine.length ? previousLine[i] : 0)) / 2); + auto left = i < bpp ? 0 : arr[i - bpp]; + auto above = previousLine.length ? previousLine[i] : 0; + + arr[i] += cast(ubyte) ((left + above) / 2); } return assumeUnique(arr);