Browse Source

Fix bug in black and white plain decoding

pull/1851/head
Ynse Hoornenborg 5 years ago
parent
commit
26b3e664db
  1. 4
      src/ImageSharp/Formats/Pbm/PlainDecoder.cs
  2. 2
      src/ImageSharp/Formats/Pbm/PlainEncoder.cs
  3. 1
      tests/ImageSharp.Tests/Formats/Pbm/PbmRoundTripTests.cs

4
src/ImageSharp/Formats/Pbm/PlainDecoder.cs

@ -174,8 +174,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm
MemoryAllocator allocator = configuration.MemoryAllocator;
using IMemoryOwner<L8> row = allocator.Allocate<L8>(width);
Span<L8> rowSpan = row.GetSpan();
var white = new L8(0);
var black = new L8(255);
var white = new L8(255);
var black = new L8(0);
for (int y = 0; y < height; y++)
{

2
src/ImageSharp/Formats/Pbm/PlainEncoder.cs

@ -230,7 +230,7 @@ namespace SixLabors.ImageSharp.Formats.Pbm
int written = 0;
for (int x = 0; x < width; x++)
{
byte value = (rowSpan[x].PackedValue > 127) ? Zero : One;
byte value = (rowSpan[x].PackedValue < 128) ? One : Zero;
plainSpan[written++] = value;
plainSpan[written++] = Space;
}

1
tests/ImageSharp.Tests/Formats/Pbm/PbmRoundTripTests.cs

@ -14,6 +14,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Pbm
public class PbmRoundTripTests
{
[Theory]
[InlineData(BlackAndWhitePlain)]
[InlineData(BlackAndWhiteBinary)]
[InlineData(GrayscalePlain)]
[InlineData(GrayscaleBinary)]

Loading…
Cancel
Save