From ba6e00499c77fdbf530b4049c41dc3d763ea0e3e Mon Sep 17 00:00:00 2001 From: Nikita Balabaev Date: Fri, 28 Jul 2017 18:31:10 +0700 Subject: [PATCH] fix #277 --- src/ImageSharp/Formats/Bmp/BmpFormat.cs | 2 +- src/ImageSharp/Formats/Gif/GifFormat.cs | 2 +- src/ImageSharp/Formats/Png/PngDecoderCore.cs | 20 +++++++++--------- src/ImageSharp/Formats/Png/PngFormat.cs | 2 +- .../Formats/Png/PngDecoderTests.cs | 2 +- tests/ImageSharp.Tests/TestImages.cs | 1 + .../Formats/Png/rgb-48bpp-interlaced.png | Bin 0 -> 69952 bytes 7 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 tests/ImageSharp.Tests/TestImages/Formats/Png/rgb-48bpp-interlaced.png diff --git a/src/ImageSharp/Formats/Bmp/BmpFormat.cs b/src/ImageSharp/Formats/Bmp/BmpFormat.cs index fb65f34d7d..bd25eb9b75 100644 --- a/src/ImageSharp/Formats/Bmp/BmpFormat.cs +++ b/src/ImageSharp/Formats/Bmp/BmpFormat.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Formats using System.Collections.Generic; /// - /// Registers the image encoders, decoders and mime type detectors for the jpeg format. + /// Registers the image encoders, decoders and mime type detectors for the bmp format. /// internal sealed class BmpFormat : IImageFormat { diff --git a/src/ImageSharp/Formats/Gif/GifFormat.cs b/src/ImageSharp/Formats/Gif/GifFormat.cs index ea7b72d327..744aadff9a 100644 --- a/src/ImageSharp/Formats/Gif/GifFormat.cs +++ b/src/ImageSharp/Formats/Gif/GifFormat.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Formats using System.Collections.Generic; /// - /// Registers the image encoders, decoders and mime type detectors for the jpeg format. + /// Registers the image encoders, decoders and mime type detectors for the gif format. /// internal sealed class GifFormat : IImageFormat { diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp/Formats/Png/PngDecoderCore.cs index e6f19b9157..467d41ff41 100644 --- a/src/ImageSharp/Formats/Png/PngDecoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngDecoderCore.cs @@ -825,14 +825,14 @@ namespace ImageSharp.Formats using (var compressed = new Buffer(length)) { // TODO: Should we use pack from vector here instead? - this.From16BitTo8Bit(new Span(defilteredScanline), compressed, length); - for (int x = pixelOffset, o = 1; + this.From16BitTo8Bit(new Span(defilteredScanline, 1), compressed, length); + for (int x = pixelOffset, o = 0; x < this.header.Width; - x += increment, o += this.bytesPerPixel) + x += increment, o += 3) { rgba.R = compressed[o]; - rgba.G = compressed[o + this.bytesPerSample]; - rgba.B = compressed[o + (2 * this.bytesPerSample)]; + rgba.G = compressed[o + 1]; + rgba.B = compressed[o + 2]; color.PackFromRgba32(rgba); rowSpan[x] = color; @@ -862,13 +862,13 @@ namespace ImageSharp.Formats using (var compressed = new Buffer(length)) { // TODO: Should we use pack from vector here instead? - this.From16BitTo8Bit(new Span(defilteredScanline), compressed, length); - for (int x = pixelOffset, o = 1; x < this.header.Width; x += increment, o += this.bytesPerPixel) + this.From16BitTo8Bit(new Span(defilteredScanline, 1), compressed, length); + for (int x = pixelOffset, o = 0; x < this.header.Width; x += increment, o += 4) { rgba.R = compressed[o]; - rgba.G = compressed[o + this.bytesPerSample]; - rgba.B = compressed[o + (2 * this.bytesPerSample)]; - rgba.A = compressed[o + (3 * this.bytesPerSample)]; + rgba.G = compressed[o + 1]; + rgba.B = compressed[o + 2]; + rgba.A = compressed[o + 3]; color.PackFromRgba32(rgba); rowSpan[x] = color; diff --git a/src/ImageSharp/Formats/Png/PngFormat.cs b/src/ImageSharp/Formats/Png/PngFormat.cs index 551b4a8c78..6df2aa7c58 100644 --- a/src/ImageSharp/Formats/Png/PngFormat.cs +++ b/src/ImageSharp/Formats/Png/PngFormat.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Formats using System.Collections.Generic; /// - /// Registers the image encoders, decoders and mime type detectors for the jpeg format. + /// Registers the image encoders, decoders and mime type detectors for the png format. /// internal sealed class PngFormat : IImageFormat { diff --git a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs index 6d82b53746..ee8a2ee55b 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs @@ -18,7 +18,7 @@ namespace ImageSharp.Tests public static readonly string[] TestFiles = { TestImages.Png.Splash, TestImages.Png.Indexed, TestImages.Png.Interlaced, TestImages.Png.FilterVar, - TestImages.Png.Bad.ChunkLength1, TestImages.Png.Bad.ChunkLength2, TestImages.Png.Rgb48Bpp + TestImages.Png.Bad.ChunkLength1, TestImages.Png.Bad.ChunkLength2, TestImages.Png.Rgb48Bpp, TestImages.Png.Rgb48BppInterlaced }; [Theory] diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index f35720f199..3479457cf8 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -26,6 +26,7 @@ namespace ImageSharp.Tests public const string SplashInterlaced = "Png/splash-interlaced.png"; public const string Interlaced = "Png/interlaced.png"; public const string Rgb48Bpp = "Png/rgb-48bpp.png"; + public const string Rgb48BppInterlaced = "Png/rgb-48bpp-interlaced.png"; // Filtered test images from http://www.schaik.com/pngsuite/pngsuite_fil_png.html public const string Filter0 = "Png/filter0.png"; diff --git a/tests/ImageSharp.Tests/TestImages/Formats/Png/rgb-48bpp-interlaced.png b/tests/ImageSharp.Tests/TestImages/Formats/Png/rgb-48bpp-interlaced.png new file mode 100644 index 0000000000000000000000000000000000000000..9202eeae4cf9ab5f52e5d598137338559d30238d GIT binary patch literal 69952 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 Zg9>9`e_kqn`z6V=_w``Edf%9={{x|$O_2Zq literal 0 HcmV?d00001