Browse Source

Update HorizontalPredictor.cs

pull/1553/head
James Jackson-South 5 years ago
parent
commit
10a3e5eba0
  1. 17
      src/ImageSharp/Formats/Tiff/Compression/HorizontalPredictor.cs

17
src/ImageSharp/Formats/Tiff/Compression/HorizontalPredictor.cs

@ -117,17 +117,18 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression
for (int y = 0; y < height; y++)
{
Span<byte> rowBytes = pixelBytes.Slice(y * rowBytesCount, rowBytesCount);
Span<Rgb24> rowRgb = MemoryMarshal.Cast<byte, Rgb24>(rowBytes);
Span<Rgb24> rowRgb = MemoryMarshal.Cast<byte, Rgb24>(rowBytes).Slice(0, width);
ref Rgb24 rowRgbBase = ref MemoryMarshal.GetReference(rowRgb);
byte r = rowRgbBase.R;
byte g = rowRgbBase.G;
byte b = rowRgbBase.B;
byte r = rowRgb[0].R;
byte g = rowRgb[0].G;
byte b = rowRgb[0].B;
for (int x = 1; x < width; x++)
for (int x = 1; x < rowRgb.Length; x++)
{
ref Rgb24 pixel = ref rowRgb[x];
r += rowRgb[x].R;
g += rowRgb[x].G;
b += rowRgb[x].B;
r += pixel.R;
g += pixel.G;
b += pixel.B;
var rgb = new Rgb24(r, g, b);
pixel.FromRgb24(rgb);
}

Loading…
Cancel
Save