mirror of https://github.com/adamdruppe/arsd.git
fix average filter of first line
This commit is contained in:
parent
5ed3b9957b
commit
71d4934605
8
png.d
8
png.d
|
|
@ -2109,11 +2109,11 @@ immutable(ubyte)[] unfilter(ubyte filterType, in ubyte[] data, in ubyte[] previo
|
||||||
return assumeUnique(arr);
|
return assumeUnique(arr);
|
||||||
case 3:
|
case 3:
|
||||||
auto arr = data.dup;
|
auto arr = data.dup;
|
||||||
if(previousLine.length)
|
|
||||||
foreach(i; 0 .. arr.length) {
|
foreach(i; 0 .. arr.length) {
|
||||||
auto prev = i < bpp ? 0 : arr[i - bpp];
|
auto left = i < bpp ? 0 : arr[i - bpp];
|
||||||
arr[i] += cast(ubyte)
|
auto above = previousLine.length ? previousLine[i] : 0;
|
||||||
/*std.math.floor*/( cast(int) (prev + (previousLine.length ? previousLine[i] : 0)) / 2);
|
|
||||||
|
arr[i] += cast(ubyte) ((left + above) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return assumeUnique(arr);
|
return assumeUnique(arr);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue