diff --git a/src/ImageSharp/Formats/Jpeg/GolangPort/OldJpegDecoder.cs b/src/ImageSharp/Formats/Jpeg/GolangPort/OldJpegDecoder.cs
new file mode 100644
index 0000000000..89a7e7535c
--- /dev/null
+++ b/src/ImageSharp/Formats/Jpeg/GolangPort/OldJpegDecoder.cs
@@ -0,0 +1,29 @@
+namespace ImageSharp.Formats.Jpeg.GolangPort
+{
+ using System.IO;
+
+ using ImageSharp.PixelFormats;
+
+ ///
+ /// Image decoder for generating an image out of a jpg stream.
+ ///
+ public sealed class OldJpegDecoder : IImageDecoder, IJpegDecoderOptions
+ {
+ ///
+ /// Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded.
+ ///
+ public bool IgnoreMetadata { get; set; }
+
+ ///
+ public Image Decode(Configuration configuration, Stream stream)
+ where TPixel : struct, IPixel
+ {
+ Guard.NotNull(stream, nameof(stream));
+
+ using (var decoder = new OldJpegDecoderCore(configuration, this))
+ {
+ return decoder.Decode(stream);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs
index 836f97e585..2102968690 100644
--- a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs
+++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs
@@ -40,9 +40,9 @@ namespace ImageSharp.Tests
private ITestOutputHelper Output { get; }
- private static IImageDecoder OriginalDecoder => new JpegDecoder();
+ private static IImageDecoder OriginalDecoder => new OldJpegDecoder();
- private static IImageDecoder GetPdfJsDecoder => throw new NotImplementedException();
+ private static IImageDecoder PdfJsDecoder => new JpegDecoder();
private float GetDifferenceInPercents(Image image, TestImageProvider provider)
where TPixel : struct, IPixel
@@ -76,7 +76,7 @@ namespace ImageSharp.Tests
this.Output.WriteLine($"Difference using ORIGINAL decoder: {d:0.0000}%");
}
- using (Image image = provider.GetImage(GetPdfJsDecoder))
+ using (Image image = provider.GetImage(PdfJsDecoder))
{
double d = this.GetDifferenceInPercents(image, provider);
this.Output.WriteLine($"Difference using PDFJS decoder: {d:0.0000}%");
@@ -100,7 +100,7 @@ namespace ImageSharp.Tests
public void DecodeBaselineJpeg_PdfJs(TestImageProvider provider)
where TPixel : struct, IPixel
{
- using (Image image = provider.GetImage(GetPdfJsDecoder))
+ using (Image image = provider.GetImage(PdfJsDecoder))
{
image.DebugSave(provider);
@@ -126,7 +126,7 @@ namespace ImageSharp.Tests
public void DecodeProgressiveJpeg_PdfJs(TestImageProvider provider)
where TPixel : struct, IPixel
{
- using (Image image = provider.GetImage(GetPdfJsDecoder))
+ using (Image image = provider.GetImage(PdfJsDecoder))
{
image.DebugSave(provider, VeryTolerantJpegComparer);
}
@@ -160,31 +160,7 @@ namespace ImageSharp.Tests
var mirror = Image.Load(data);
mirror.DebugSave(provider, $"_{subsample}_Q{quality}");
}
-
- [Theory]
- [WithSolidFilledImages(42, 88, 255, 0, 0, PixelTypes.Rgba32)]
- public void DecodeGenerated_MetadataOnly(
- TestImageProvider provider)
- where TPixel : struct, IPixel
- {
- using (Image image = provider.GetImage())
- {
- using (var ms = new MemoryStream())
- {
- image.Save(ms, new JpegEncoder());
- ms.Seek(0, SeekOrigin.Begin);
-
- using (var decoder = new OldJpegDecoderCore(null, new JpegDecoder()))
- {
- decoder.Decode(ms);
-
- Assert.Equal(decoder.ImageWidth, image.Width);
- Assert.Equal(decoder.ImageHeight, image.Height);
- }
- }
- }
- }
-
+
[Fact]
public void Decoder_Reads_Correct_Resolution_From_Jfif()
{