// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Benchmarks { using BenchmarkDotNet.Attributes; using ImageSharp.PixelFormats; using ImageSharp.Drawing; using ImageSharp.Processing.Processors; using CoreImage = ImageSharp.Image; using CoreSize = ImageSharp.Size; public class Glow : BenchmarkBase { private GlowProcessor bulk; private GlowProcessorParallel parallel; [Setup] public void Setup() { this.bulk = new GlowProcessor(NamedColors.Beige) { Radius = 800 * .5f, }; this.parallel = new GlowProcessorParallel(NamedColors.Beige) { Radius = 800 * .5f, }; } [Benchmark(Description = "ImageSharp Glow - Bulk")] public CoreSize GlowBulk() { using (CoreImage image = new CoreImage(800, 800)) { image.ApplyProcessor(bulk, image.Bounds); return new CoreSize(image.Width, image.Height); } } [Benchmark(Description = "ImageSharp Glow - Parallel")] public CoreSize GLowSimple() { using (CoreImage image = new CoreImage(800, 800)) { image.ApplyProcessor(parallel, image.Bounds); return new CoreSize(image.Width, image.Height); } } } }