diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs index 3fc6af01e..60bf49eba 100644 --- a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs +++ b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs @@ -11,6 +11,8 @@ namespace SixLabors.ImageSharp.Benchmarks.Image using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Attributes.Jobs; + using SixLabors.ImageSharp.Formats.Jpeg.GolangPort; + using SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort; using SixLabors.ImageSharp.Tests; using CoreImage = ImageSharp.Image; @@ -22,16 +24,19 @@ namespace SixLabors.ImageSharp.Benchmarks.Image { private byte[] jpegBytes; - private static readonly string TestImage = Path.Combine( + private string TestImageFullPath => Path.Combine( TestEnvironment.InputImagesDirectoryFullPath, - TestImages.Jpeg.Baseline.Calliphora); + this.TestImage); + + [Params(TestImages.Jpeg.Baseline.Jpeg420Exif, TestImages.Jpeg.Baseline.Calliphora)] + public string TestImage { get; set; } [GlobalSetup] public void ReadImages() { if (this.jpegBytes == null) { - this.jpegBytes = File.ReadAllBytes(TestImage); + this.jpegBytes = File.ReadAllBytes(this.TestImageFullPath); } } @@ -48,11 +53,23 @@ namespace SixLabors.ImageSharp.Benchmarks.Image } [Benchmark(Description = "Decode Jpeg - ImageSharp")] - public CoreSize JpegCore() + public CoreSize JpegImageSharpOrig() + { + using (MemoryStream memoryStream = new MemoryStream(this.jpegBytes)) + { + using (Image image = CoreImage.Load(memoryStream, new OrigJpegDecoder())) + { + return new CoreSize(image.Width, image.Height); + } + } + } + + [Benchmark(Description = "Decode Jpeg - ImageSharp PdfJs")] + public CoreSize JpegImageSharpPdfJs() { using (MemoryStream memoryStream = new MemoryStream(this.jpegBytes)) { - using (Image image = CoreImage.Load(memoryStream)) + using (Image image = CoreImage.Load(memoryStream, new PdfJsJpegDecoder())) { return new CoreSize(image.Width, image.Height); }