Skip to content

Commit b3b4827

Browse files
committed
introduced OldJpegDecoder : IImageDecoder for the GolangPort decoder
1 parent 493deda commit b3b4827

File tree

2 files changed

+35
-30
lines changed

2 files changed

+35
-30
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace ImageSharp.Formats.Jpeg.GolangPort
2+
{
3+
using System.IO;
4+
5+
using ImageSharp.PixelFormats;
6+
7+
/// <summary>
8+
/// Image decoder for generating an image out of a jpg stream.
9+
/// </summary>
10+
public sealed class OldJpegDecoder : IImageDecoder, IJpegDecoderOptions
11+
{
12+
/// <summary>
13+
/// Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded.
14+
/// </summary>
15+
public bool IgnoreMetadata { get; set; }
16+
17+
/// <inheritdoc/>
18+
public Image<TPixel> Decode<TPixel>(Configuration configuration, Stream stream)
19+
where TPixel : struct, IPixel<TPixel>
20+
{
21+
Guard.NotNull(stream, nameof(stream));
22+
23+
using (var decoder = new OldJpegDecoderCore(configuration, this))
24+
{
25+
return decoder.Decode<TPixel>(stream);
26+
}
27+
}
28+
}
29+
}

tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ public JpegDecoderTests(ITestOutputHelper output)
4040

4141
private ITestOutputHelper Output { get; }
4242

43-
private static IImageDecoder OriginalDecoder => new JpegDecoder();
43+
private static IImageDecoder OriginalDecoder => new OldJpegDecoder();
4444

45-
private static IImageDecoder GetPdfJsDecoder => throw new NotImplementedException();
45+
private static IImageDecoder PdfJsDecoder => new JpegDecoder();
4646

4747
private float GetDifferenceInPercents<TPixel>(Image<TPixel> image, TestImageProvider<TPixel> provider)
4848
where TPixel : struct, IPixel<TPixel>
@@ -76,7 +76,7 @@ public void CompareJpegDecoders<TPixel>(TestImageProvider<TPixel> provider)
7676
this.Output.WriteLine($"Difference using ORIGINAL decoder: {d:0.0000}%");
7777
}
7878

79-
using (Image<TPixel> image = provider.GetImage(GetPdfJsDecoder))
79+
using (Image<TPixel> image = provider.GetImage(PdfJsDecoder))
8080
{
8181
double d = this.GetDifferenceInPercents(image, provider);
8282
this.Output.WriteLine($"Difference using PDFJS decoder: {d:0.0000}%");
@@ -100,7 +100,7 @@ public void DecodeBaselineJpeg<TPixel>(TestImageProvider<TPixel> provider)
100100
public void DecodeBaselineJpeg_PdfJs<TPixel>(TestImageProvider<TPixel> provider)
101101
where TPixel : struct, IPixel<TPixel>
102102
{
103-
using (Image<TPixel> image = provider.GetImage(GetPdfJsDecoder))
103+
using (Image<TPixel> image = provider.GetImage(PdfJsDecoder))
104104
{
105105
image.DebugSave(provider);
106106

@@ -126,7 +126,7 @@ public void DecodeProgressiveJpeg<TPixel>(TestImageProvider<TPixel> provider)
126126
public void DecodeProgressiveJpeg_PdfJs<TPixel>(TestImageProvider<TPixel> provider)
127127
where TPixel : struct, IPixel<TPixel>
128128
{
129-
using (Image<TPixel> image = provider.GetImage(GetPdfJsDecoder))
129+
using (Image<TPixel> image = provider.GetImage(PdfJsDecoder))
130130
{
131131
image.DebugSave(provider, VeryTolerantJpegComparer);
132132
}
@@ -160,31 +160,7 @@ public void DecodeGenerated<TPixel>(
160160
var mirror = Image.Load<TPixel>(data);
161161
mirror.DebugSave(provider, $"_{subsample}_Q{quality}");
162162
}
163-
164-
[Theory]
165-
[WithSolidFilledImages(42, 88, 255, 0, 0, PixelTypes.Rgba32)]
166-
public void DecodeGenerated_MetadataOnly<TPixel>(
167-
TestImageProvider<TPixel> provider)
168-
where TPixel : struct, IPixel<TPixel>
169-
{
170-
using (Image<TPixel> image = provider.GetImage())
171-
{
172-
using (var ms = new MemoryStream())
173-
{
174-
image.Save(ms, new JpegEncoder());
175-
ms.Seek(0, SeekOrigin.Begin);
176-
177-
using (var decoder = new OldJpegDecoderCore(null, new JpegDecoder()))
178-
{
179-
decoder.Decode<TPixel>(ms);
180-
181-
Assert.Equal(decoder.ImageWidth, image.Width);
182-
Assert.Equal(decoder.ImageHeight, image.Height);
183-
}
184-
}
185-
}
186-
}
187-
163+
188164
[Fact]
189165
public void Decoder_Reads_Correct_Resolution_From_Jfif()
190166
{

0 commit comments

Comments
 (0)