Browse Source

Write EOF indicated for plain encoding

pull/1851/head
Ynse Hoornenborg 5 years ago
parent
commit
749452503b
  1. 3
      src/ImageSharp/Formats/Pbm/PlainEncoder.cs
  2. 8
      tests/ImageSharp.Tests/Formats/Pbm/PbmEncoderTests.cs

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

@ -66,6 +66,9 @@ namespace SixLabors.ImageSharp.Formats.Pbm
{
WriteBlackAndWhite(configuration, stream, image);
}
// Write EOF indicator, as some encoders expect it.
stream.WriteByte(Space);
}
private static void WriteGrayscale<TPixel>(Configuration configuration, Stream stream, ImageFrame<TPixel> image)

8
tests/ImageSharp.Tests/Formats/Pbm/PbmEncoderTests.cs

@ -72,7 +72,13 @@ namespace SixLabors.ImageSharp.Tests.Formats.Pbm
using (var memStream = new MemoryStream())
{
input.Save(memStream, options);
memStream.Position = 0;
// EOF indicator for plain is a Space.
memStream.Seek(-1, SeekOrigin.End);
int lastByte = memStream.ReadByte();
Assert.Equal(0x20, lastByte);
memStream.Seek(0, SeekOrigin.Begin);
using (var output = Image.Load<Rgba32>(memStream))
{
PbmMetadata meta = output.Metadata.GetPbmMetadata();

Loading…
Cancel
Save