diff --git a/tests/ImageSharp.Benchmarks/BenchmarkBase.cs b/tests/ImageSharp.Benchmarks/BenchmarkBase.cs
new file mode 100644
index 000000000..d6e8ac692
--- /dev/null
+++ b/tests/ImageSharp.Benchmarks/BenchmarkBase.cs
@@ -0,0 +1,22 @@
+namespace ImageSharp.Benchmarks
+{
+ using ImageSharp.Formats;
+
+ ///
+ /// The image benchmark base class.
+ ///
+ public abstract class BenchmarkBase
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ protected BenchmarkBase()
+ {
+ // Add Image Formats
+ Configuration.Default.AddImageFormat(new JpegFormat());
+ Configuration.Default.AddImageFormat(new PngFormat());
+ Configuration.Default.AddImageFormat(new BmpFormat());
+ Configuration.Default.AddImageFormat(new GifFormat());
+ }
+ }
+}
diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs
index 559cc4c11..2dd3acb0a 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs
@@ -1,4 +1,4 @@
-//
+//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
@@ -7,15 +7,16 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
+ using System.IO;
+ using System.Numerics;
using BenchmarkDotNet.Attributes;
+
+ using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
using CorePoint = ImageSharp.Point;
- using CoreColor = ImageSharp.Color;
- using System.IO;
- using System.Numerics;
- public class DrawBeziers
+ public class DrawBeziers : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Beziers")]
public void DrawPathSystemDrawing()
@@ -47,7 +48,7 @@ namespace ImageSharp.Benchmarks
public void DrawLinesCore()
{
CoreImage image = new CoreImage(800, 800);
-
+
image.DrawBeziers(CoreColor.HotPink, 10, new[] {
new Vector2(10, 500),
new Vector2(30, 10),
diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs
index 429da047d..b418feb5b 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs
@@ -1,4 +1,4 @@
-//
+//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
@@ -7,15 +7,16 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
+ using System.IO;
+ using System.Numerics;
using BenchmarkDotNet.Attributes;
+
+ using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
using CorePoint = ImageSharp.Point;
- using CoreColor = ImageSharp.Color;
- using System.IO;
- using System.Numerics;
- public class DrawLines
+ public class DrawLines : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Lines")]
public void DrawPathSystemDrawing()
diff --git a/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs b/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs
index 405e8d0a7..46526330f 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs
@@ -15,7 +15,7 @@ namespace ImageSharp.Benchmarks
using System.IO;
using System.Numerics;
- public class DrawPolygon
+ public class DrawPolygon : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Polygon")]
public void DrawPolygonSystemDrawing()
@@ -46,7 +46,7 @@ namespace ImageSharp.Benchmarks
public void DrawPolygonCore()
{
CoreImage image = new CoreImage(800, 800);
-
+
image.DrawPolygon(CoreColor.HotPink, 10, new[] {
new Vector2(10, 10),
new Vector2(550, 50),
diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs b/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs
index 5e07d1242..b774d73cb 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs
@@ -1,4 +1,4 @@
-//
+//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
@@ -7,14 +7,15 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
+ using System.IO;
+ using System.Numerics;
using BenchmarkDotNet.Attributes;
- using CoreImage = ImageSharp.Image;
+
using CoreColor = ImageSharp.Color;
- using System.IO;
- using System.Numerics;
+ using CoreImage = ImageSharp.Image;
- public class FillPolygon
+ public class FillPolygon : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Fill Polygon")]
public void DrawSolidPolygonSystemDrawing()
@@ -25,7 +26,9 @@ namespace ImageSharp.Benchmarks
using (Graphics graphics = Graphics.FromImage(destination))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
- graphics.FillPolygon(Brushes.HotPink, new[] {
+ graphics.FillPolygon(Brushes.HotPink,
+ new[]
+ {
new Point(10, 10),
new Point(550, 50),
new Point(200, 400)
@@ -47,8 +50,7 @@ namespace ImageSharp.Benchmarks
new Vector2(10, 10),
new Vector2(550, 50),
new Vector2(200, 400)
- }
- );
+ });
using (MemoryStream ms = new MemoryStream())
{
diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs b/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs
index c16e6676a..d9782249a 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs
@@ -13,10 +13,10 @@ namespace ImageSharp.Benchmarks
using CoreRectangle = ImageSharp.Rectangle;
using CoreColor = ImageSharp.Color;
using CoreSize = ImageSharp.Size;
- using System.IO;
+
using System.Numerics;
- public class FillRectangle
+ public class FillRectangle : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Fill Rectangle")]
public Size FillRectangleSystemDrawing()
diff --git a/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs b/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs
index 6952fcd0f..e5676cd13 100644
--- a/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs
+++ b/tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs
@@ -1,4 +1,4 @@
-//
+//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
@@ -7,14 +7,13 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
+ using System.IO;
using BenchmarkDotNet.Attributes;
- using CoreImage = ImageSharp.Image;
- using CorePoint = ImageSharp.Point;
- using CoreColor = ImageSharp.Color;
+
using CoreBrushes = ImageSharp.Drawing.Brushes.Brushes;
- using CorePatternBrush = ImageSharp.Drawing.Brushes.PatternBrush;
- using System.IO;
+ using CoreColor = ImageSharp.Color;
+ using CoreImage = ImageSharp.Image;
public class FillWithPattern
{
@@ -27,7 +26,7 @@ namespace ImageSharp.Benchmarks
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
var brush = new HatchBrush(HatchStyle.BackwardDiagonal, Color.HotPink);
- graphics.FillRectangle(brush, new Rectangle(0,0, 800,800)); // can't find a way to flood fill with a brush
+ graphics.FillRectangle(brush, new Rectangle(0,0, 800,800)); // can't find a way to flood fill with a brush
}
using (MemoryStream ms = new MemoryStream())
{
diff --git a/tests/ImageSharp.Benchmarks/Image/CopyPixels.cs b/tests/ImageSharp.Benchmarks/Image/CopyPixels.cs
index cddcc268d..ae732d053 100644
--- a/tests/ImageSharp.Benchmarks/Image/CopyPixels.cs
+++ b/tests/ImageSharp.Benchmarks/Image/CopyPixels.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
- public class CopyPixels
+ public class CopyPixels : BenchmarkBase
{
[Benchmark(Description = "Copy by Pixel")]
public CoreColor CopyByPixel()
diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs b/tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs
index 263e66462..b8f433a14 100644
--- a/tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs
+++ b/tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
- public class DecodeBmp
+ public class DecodeBmp : BenchmarkBase
{
private byte[] bmpBytes;
diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs b/tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs
index e5c1e5dc4..5f7050fb0 100644
--- a/tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs
+++ b/tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs
@@ -11,7 +11,7 @@ namespace ImageSharp.Benchmarks.Image
using ImageSharp;
- public class DecodeFilteredPng
+ public class DecodeFilteredPng : BenchmarkBase
{
private MemoryStream filter0;
private MemoryStream filter1;
diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeGif.cs b/tests/ImageSharp.Benchmarks/Image/DecodeGif.cs
index e8599b357..3da6eb362 100644
--- a/tests/ImageSharp.Benchmarks/Image/DecodeGif.cs
+++ b/tests/ImageSharp.Benchmarks/Image/DecodeGif.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
- public class DecodeGif
+ public class DecodeGif : BenchmarkBase
{
private byte[] gifBytes;
diff --git a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs
index 6f2bd5e60..867583c7f 100644
--- a/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs
+++ b/tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
- public class DecodeJpeg
+ public class DecodeJpeg : BenchmarkBase
{
private byte[] jpegBytes;
diff --git a/tests/ImageSharp.Benchmarks/Image/DecodePng.cs b/tests/ImageSharp.Benchmarks/Image/DecodePng.cs
index ffc02b6ba..f3bda758d 100644
--- a/tests/ImageSharp.Benchmarks/Image/DecodePng.cs
+++ b/tests/ImageSharp.Benchmarks/Image/DecodePng.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
- public class DecodePng
+ public class DecodePng : BenchmarkBase
{
private byte[] pngBytes;
diff --git a/tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs b/tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs
index 261a7f269..5a77fbca0 100644
--- a/tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs
+++ b/tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
- public class EncodeBmp
+ public class EncodeBmp : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;
diff --git a/tests/ImageSharp.Benchmarks/Image/EncodeGif.cs b/tests/ImageSharp.Benchmarks/Image/EncodeGif.cs
index e2acb4db5..42feb085f 100644
--- a/tests/ImageSharp.Benchmarks/Image/EncodeGif.cs
+++ b/tests/ImageSharp.Benchmarks/Image/EncodeGif.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
- public class EncodeGif
+ public class EncodeGif : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;
diff --git a/tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs b/tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs
index 8bed1a56f..f1e3b2114 100644
--- a/tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs
+++ b/tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
- public class EncodeJpeg
+ public class EncodeJpeg : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;
diff --git a/tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs b/tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs
index d6af8c842..6762ca8d8 100644
--- a/tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs
+++ b/tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs
@@ -15,11 +15,11 @@
public class EncodeJpegMultiple : MultiImageBenchmarkBase.WithImagesPreloaded
{
protected override IEnumerable InputImageSubfolders => new[]
- {
- "Formats/Bmp/",
- "Formats/Jpg/baseline"
- };
-
+ {
+ "Formats/Bmp/",
+ "Formats/Jpg/baseline"
+ };
+
protected override IEnumerable FileFilters => new[] { "*.bmp", "*.jpg" };
[Benchmark(Description = "EncodeJpegMultiple - ImageSharp")]
diff --git a/tests/ImageSharp.Benchmarks/Image/EncodePng.cs b/tests/ImageSharp.Benchmarks/Image/EncodePng.cs
index 52d953775..44ffba679 100644
--- a/tests/ImageSharp.Benchmarks/Image/EncodePng.cs
+++ b/tests/ImageSharp.Benchmarks/Image/EncodePng.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
- public class EncodePng
+ public class EncodePng : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;
diff --git a/tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs b/tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs
index d09531e75..ffd476007 100644
--- a/tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs
+++ b/tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using SystemColor = System.Drawing.Color;
- public class GetSetPixel
+ public class GetSetPixel : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing GetSet pixel")]
public SystemColor ResizeSystemDrawing()
diff --git a/tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs b/tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs
index d605bf931..5870840c1 100644
--- a/tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs
+++ b/tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs
@@ -11,7 +11,7 @@
using Image = ImageSharp.Image;
- public abstract class MultiImageBenchmarkBase
+ public abstract class MultiImageBenchmarkBase : BenchmarkBase
{
protected Dictionary FileNamesToBytes = new Dictionary();
@@ -26,7 +26,7 @@
LargeImagesOnly
}
-
+
[Params(TestingMode.All, TestingMode.SmallImagesOnly, TestingMode.LargeImagesOnly)]
public TestingMode Mode { get; set; }
@@ -62,7 +62,7 @@
this.EnumeratePairsByBenchmarkSettings(
this.FileNamesToBytes,
arr => arr.Length < this.LargeImageThresholdInBytes);
-
+
protected abstract IEnumerable InputImageSubfolders { get; }
[Setup]
@@ -122,7 +122,7 @@
using (var ms1 = new MemoryStream(bytes))
{
this.FileNamesToImageSharpImages[fn] = new Image(ms1);
-
+
}
this.FileNamesToSystemDrawingImages[fn] = new Bitmap(new MemoryStream(bytes));
@@ -178,7 +178,7 @@
}
}
-
+
}
diff --git a/tests/ImageSharp.Benchmarks/Program.cs b/tests/ImageSharp.Benchmarks/Program.cs
index 7ecf63274..8c609f015 100644
--- a/tests/ImageSharp.Benchmarks/Program.cs
+++ b/tests/ImageSharp.Benchmarks/Program.cs
@@ -7,6 +7,8 @@ namespace ImageSharp.Benchmarks
{
using BenchmarkDotNet.Running;
+ using ImageSharp.Formats;
+
public class Program
{
///
diff --git a/tests/ImageSharp.Benchmarks/Samplers/Crop.cs b/tests/ImageSharp.Benchmarks/Samplers/Crop.cs
index c723ff0c7..3a98569e7 100644
--- a/tests/ImageSharp.Benchmarks/Samplers/Crop.cs
+++ b/tests/ImageSharp.Benchmarks/Samplers/Crop.cs
@@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
- public class Crop
+ public class Crop : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Crop")]
public Size CropSystemDrawing()
diff --git a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs
index eb3e5cb8e..b02b46f66 100644
--- a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs
+++ b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs
@@ -11,7 +11,7 @@ namespace ImageSharp.Benchmarks
using CoreImage = ImageSharp.Image;
- public class DetectEdges
+ public class DetectEdges : BenchmarkBase
{
private CoreImage image;
diff --git a/tests/ImageSharp.Benchmarks/Samplers/Resize.cs b/tests/ImageSharp.Benchmarks/Samplers/Resize.cs
index a65e62e7c..10fe1fc75 100644
--- a/tests/ImageSharp.Benchmarks/Samplers/Resize.cs
+++ b/tests/ImageSharp.Benchmarks/Samplers/Resize.cs
@@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks
using CoreSize = ImageSharp.Size;
using CoreImage = ImageSharp.Image;
- public class Resize
+ public class Resize : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Resize")]
public Size ResizeSystemDrawing()