From a11d0177e9c867be7aa0e138a4d41ff1dae2075a Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 5 Jul 2016 14:07:53 +1000 Subject: [PATCH] Remove task splitting code. Former-commit-id: a29d6e26e80dd4c47adfe6dab3cea8b41699165e Former-commit-id: 5463d0ceda62e577377de3ad9d52d347a830622b Former-commit-id: b3efff43e573ba7239d5724187cea5ae62f93690 --- .../Filters/Processors/AlphaProcessor.cs | 2 +- .../Processors/BackgroundColorProcessor.cs | 2 +- .../Binarization/ThresholdProcessor.cs | 2 +- .../Filters/Processors/BlendProcessor.cs | 2 +- .../Filters/Processors/BrightnessProcessor.cs | 2 +- .../ColorMatrix/ColorMatrixFilter.cs | 15 ++-- .../Filters/Processors/ContrastProcessor.cs | 2 +- .../Convolution/BoxBlurProcessor.cs | 3 - .../Convolution/Convolution2DFilter.cs | 2 +- .../Convolution/Convolution2PassFilter.cs | 43 ++++++------ .../Convolution/ConvolutionFilter.cs | 2 +- .../Convolution/GuassianBlurProcessor.cs | 3 - .../Convolution/GuassianSharpenProcessor.cs | 3 - .../Filters/Processors/GlowProcessor.cs | 2 +- .../Filters/Processors/InvertProcessor.cs | 2 +- .../Filters/Processors/PixelateProcessor.cs | 7 +- .../Filters/Processors/VignetteProcessor.cs | 2 +- ...lelImageProcessor.cs => ImageProcessor.cs} | 70 ++----------------- .../Samplers/Processors/CropProcessor.cs | 13 ++-- .../Samplers/Processors/ImageSampler.cs | 2 +- .../Samplers/Processors/ResizeProcessor.cs | 11 +-- .../Processors/RotateFlipProcessor.cs | 3 - .../Samplers/Processors/RotateProcessor.cs | 3 - .../Samplers/Processors/SkewProcessor.cs | 3 - 24 files changed, 51 insertions(+), 150 deletions(-) rename src/ImageProcessorCore/{ParallelImageProcessor.cs => ImageProcessor.cs} (69%) diff --git a/src/ImageProcessorCore/Filters/Processors/AlphaProcessor.cs b/src/ImageProcessorCore/Filters/Processors/AlphaProcessor.cs index 72ba79f9b..8ed703e03 100644 --- a/src/ImageProcessorCore/Filters/Processors/AlphaProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/AlphaProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// An to change the Alpha of an . /// - public class AlphaProcessor : ParallelImageProcessor + public class AlphaProcessor : ImageProcessor { /// /// Initializes a new instance of the class. diff --git a/src/ImageProcessorCore/Filters/Processors/BackgroundColorProcessor.cs b/src/ImageProcessorCore/Filters/Processors/BackgroundColorProcessor.cs index ef451a89d..e78987d23 100644 --- a/src/ImageProcessorCore/Filters/Processors/BackgroundColorProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/BackgroundColorProcessor.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Processors /// /// Sets the background color of the image. /// - public class BackgroundColorProcessor : ParallelImageProcessor + public class BackgroundColorProcessor : ImageProcessor { /// /// The epsilon for comparing floating point numbers. diff --git a/src/ImageProcessorCore/Filters/Processors/Binarization/ThresholdProcessor.cs b/src/ImageProcessorCore/Filters/Processors/Binarization/ThresholdProcessor.cs index dc3816a03..60b49d0ee 100644 --- a/src/ImageProcessorCore/Filters/Processors/Binarization/ThresholdProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/Binarization/ThresholdProcessor.cs @@ -13,7 +13,7 @@ namespace ImageProcessorCore.Processors /// . The image will be converted to greyscale before thresholding /// occurs. /// - public class ThresholdProcessor : ParallelImageProcessor + public class ThresholdProcessor : ImageProcessor { /// /// Initializes a new instance of the class. diff --git a/src/ImageProcessorCore/Filters/Processors/BlendProcessor.cs b/src/ImageProcessorCore/Filters/Processors/BlendProcessor.cs index cbf966a7c..5de0741fa 100644 --- a/src/ImageProcessorCore/Filters/Processors/BlendProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/BlendProcessor.cs @@ -10,7 +10,7 @@ namespace ImageProcessorCore.Processors /// /// Combines two images together by blending the pixels. /// - public class BlendProcessor : ParallelImageProcessor + public class BlendProcessor : ImageProcessor { /// /// The image to blend. diff --git a/src/ImageProcessorCore/Filters/Processors/BrightnessProcessor.cs b/src/ImageProcessorCore/Filters/Processors/BrightnessProcessor.cs index a100e5717..6710ff593 100644 --- a/src/ImageProcessorCore/Filters/Processors/BrightnessProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/BrightnessProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// An to change the brightness of an . /// - public class BrightnessProcessor : ParallelImageProcessor + public class BrightnessProcessor : ImageProcessor { /// /// Initializes a new instance of the class. diff --git a/src/ImageProcessorCore/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs b/src/ImageProcessorCore/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs index eb01c3c22..d27ea5c6d 100644 --- a/src/ImageProcessorCore/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs +++ b/src/ImageProcessorCore/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Processors /// /// The color matrix filter. /// - public abstract class ColorMatrixFilter : ParallelImageProcessor, IColorMatrixFilter + public abstract class ColorMatrixFilter : ImageProcessor, IColorMatrixFilter { /// public abstract Matrix4x4 Matrix { get; } @@ -22,8 +22,6 @@ namespace ImageProcessorCore.Processors /// protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY) { - int sourceY = sourceRectangle.Y; - int sourceBottom = sourceRectangle.Bottom; int startX = sourceRectangle.X; int endX = sourceRectangle.Right; Matrix4x4 matrix = this.Matrix; @@ -36,15 +34,12 @@ namespace ImageProcessorCore.Processors endY, y => { - if (y >= sourceY && y < sourceBottom) + for (int x = startX; x < endX; x++) { - for (int x = startX; x < endX; x++) - { - targetPixels[x, y] = this.ApplyMatrix(sourcePixels[x, y], matrix); - } - - this.OnRowProcessed(); + targetPixels[x, y] = this.ApplyMatrix(sourcePixels[x, y], matrix); } + + this.OnRowProcessed(); }); } } diff --git a/src/ImageProcessorCore/Filters/Processors/ContrastProcessor.cs b/src/ImageProcessorCore/Filters/Processors/ContrastProcessor.cs index 920a6fb01..19f564be4 100644 --- a/src/ImageProcessorCore/Filters/Processors/ContrastProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/ContrastProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// An to change the contrast of an . /// - public class ContrastProcessor : ParallelImageProcessor + public class ContrastProcessor : ImageProcessor { /// /// Initializes a new instance of the class. diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/BoxBlurProcessor.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/BoxBlurProcessor.cs index 4ad60d65b..042288ffd 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/BoxBlurProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/BoxBlurProcessor.cs @@ -42,9 +42,6 @@ namespace ImageProcessorCore.Processors /// public override float[,] KernelY => this.kernelY; - /// - public override int Parallelism => 1; - /// protected override void OnApply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle) { diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2DFilter.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2DFilter.cs index 0dad68485..b16a528db 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2DFilter.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2DFilter.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Processors /// /// Defines a filter that uses two one-dimensional matrices to perform convolution against an image. /// - public abstract class Convolution2DFilter : ParallelImageProcessor + public abstract class Convolution2DFilter : ImageProcessor { /// /// Gets the horizontal gradient operator. diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2PassFilter.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2PassFilter.cs index 66e8cac98..c9031dfd7 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2PassFilter.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/Convolution2PassFilter.cs @@ -10,7 +10,7 @@ namespace ImageProcessorCore.Processors /// /// Defines a filter that uses two one-dimensional matrices to perform two-pass convolution against an image. /// - public abstract class Convolution2PassFilter : ParallelImageProcessor + public abstract class Convolution2PassFilter : ImageProcessor { /// /// Gets the horizontal gradient operator. @@ -64,7 +64,6 @@ namespace ImageProcessorCore.Processors int radiusY = kernelHeight >> 1; int radiusX = kernelWidth >> 1; - int sourceY = sourceRectangle.Y; int sourceBottom = sourceRectangle.Bottom; int startX = sourceRectangle.X; int endX = sourceRectangle.Right; @@ -79,36 +78,34 @@ namespace ImageProcessorCore.Processors endY, y => { - if (y >= sourceY && y < sourceBottom) + for (int x = startX; x < endX; x++) { - for (int x = startX; x < endX; x++) - { - Color destination = new Color(); + Color destination = new Color(); - // Apply each matrix multiplier to the color components for each pixel. - for (int fy = 0; fy < kernelHeight; fy++) - { - int fyr = fy - radiusY; - int offsetY = y + fyr; + // Apply each matrix multiplier to the color components for each pixel. + for (int fy = 0; fy < kernelHeight; fy++) + { + int fyr = fy - radiusY; + int offsetY = y + fyr; - offsetY = offsetY.Clamp(0, maxY); + offsetY = offsetY.Clamp(0, maxY); - for (int fx = 0; fx < kernelWidth; fx++) - { - int fxr = fx - radiusX; - int offsetX = x + fxr; + for (int fx = 0; fx < kernelWidth; fx++) + { + int fxr = fx - radiusX; + int offsetX = x + fxr; - offsetX = offsetX.Clamp(0, maxX); + offsetX = offsetX.Clamp(0, maxX); - Color currentColor = sourcePixels[offsetX, offsetY]; - destination += kernel[fy, fx] * currentColor; - } + Color currentColor = sourcePixels[offsetX, offsetY]; + destination += kernel[fy, fx] * currentColor; } - - targetPixels[x, y] = destination; } - this.OnRowProcessed(); + + targetPixels[x, y] = destination; } + + this.OnRowProcessed(); }); } } diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/ConvolutionFilter.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/ConvolutionFilter.cs index 84884ff83..8ddcab4a5 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/ConvolutionFilter.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/ConvolutionFilter.cs @@ -10,7 +10,7 @@ namespace ImageProcessorCore.Processors /// /// Defines a filter that uses a 2 dimensional matrix to perform convolution against an image. /// - public abstract class ConvolutionFilter : ParallelImageProcessor + public abstract class ConvolutionFilter : ImageProcessor { /// /// Gets the 2d gradient operator. diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianBlurProcessor.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianBlurProcessor.cs index 904de5994..6288ea963 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianBlurProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianBlurProcessor.cs @@ -76,9 +76,6 @@ namespace ImageProcessorCore.Processors /// public override float[,] KernelY => this.kernelY; - /// - public override int Parallelism => 1; - /// protected override void OnApply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle) { diff --git a/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianSharpenProcessor.cs b/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianSharpenProcessor.cs index 8d95eaf82..9d70732d2 100644 --- a/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianSharpenProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/Convolution/GuassianSharpenProcessor.cs @@ -78,9 +78,6 @@ namespace ImageProcessorCore.Processors /// public override float[,] KernelY => this.kernelY; - /// - public override int Parallelism => 1; - /// protected override void OnApply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle) { diff --git a/src/ImageProcessorCore/Filters/Processors/GlowProcessor.cs b/src/ImageProcessorCore/Filters/Processors/GlowProcessor.cs index 63c18e9eb..e046be6a9 100644 --- a/src/ImageProcessorCore/Filters/Processors/GlowProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/GlowProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// Creates a glow effect on the image /// - public class GlowProcessor : ParallelImageProcessor + public class GlowProcessor : ImageProcessor { /// /// Gets or sets the glow color to apply. diff --git a/src/ImageProcessorCore/Filters/Processors/InvertProcessor.cs b/src/ImageProcessorCore/Filters/Processors/InvertProcessor.cs index 31ef3ceb8..1f319b92b 100644 --- a/src/ImageProcessorCore/Filters/Processors/InvertProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/InvertProcessor.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Processors /// /// An to invert the colors of an . /// - public class InvertProcessor : ParallelImageProcessor + public class InvertProcessor : ImageProcessor { /// protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY) diff --git a/src/ImageProcessorCore/Filters/Processors/PixelateProcessor.cs b/src/ImageProcessorCore/Filters/Processors/PixelateProcessor.cs index 6c129bbee..4769799b5 100644 --- a/src/ImageProcessorCore/Filters/Processors/PixelateProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/PixelateProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// An to invert the colors of an . /// - public class PixelateProcessor : ParallelImageProcessor + public class PixelateProcessor : ImageProcessor { /// /// Initializes a new instance of the class. @@ -27,9 +27,6 @@ namespace ImageProcessorCore.Processors this.Value = size; } - /// - public override int Parallelism { get; set; } = 1; - /// /// Gets or the pixel size. /// @@ -59,7 +56,6 @@ namespace ImageProcessorCore.Processors { for (int x = startX; x < endX; x += size) { - int offsetX = offset; int offsetY = offset; @@ -88,6 +84,7 @@ namespace ImageProcessorCore.Processors } } } + this.OnRowProcessed(); } }); diff --git a/src/ImageProcessorCore/Filters/Processors/VignetteProcessor.cs b/src/ImageProcessorCore/Filters/Processors/VignetteProcessor.cs index 6a1bbc684..1fd4630ed 100644 --- a/src/ImageProcessorCore/Filters/Processors/VignetteProcessor.cs +++ b/src/ImageProcessorCore/Filters/Processors/VignetteProcessor.cs @@ -12,7 +12,7 @@ namespace ImageProcessorCore.Processors /// /// Creates a vignette effect on the image /// - public class VignetteProcessor : ParallelImageProcessor + public class VignetteProcessor : ImageProcessor { /// /// Gets or sets the vignette color to apply. diff --git a/src/ImageProcessorCore/ParallelImageProcessor.cs b/src/ImageProcessorCore/ImageProcessor.cs similarity index 69% rename from src/ImageProcessorCore/ParallelImageProcessor.cs rename to src/ImageProcessorCore/ImageProcessor.cs index a6b9fc354..ea76ebbf8 100644 --- a/src/ImageProcessorCore/ParallelImageProcessor.cs +++ b/src/ImageProcessorCore/ImageProcessor.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // @@ -7,21 +7,15 @@ namespace ImageProcessorCore.Processors { using System; using System.Threading; - using System.Threading.Tasks; /// - /// Allows the application of processors using parallel processing. + /// Allows the application of processors to images. /// - public abstract class ParallelImageProcessor : IImageProcessor + public abstract class ImageProcessor : IImageProcessor { /// public event ProgressEventHandler OnProgress; - /// - /// Gets or sets the count of workers to run the process in parallel. - /// - public virtual int Parallelism { get; set; } = Environment.ProcessorCount * 2; - /// /// The number of rows processed by a derived class. /// @@ -42,34 +36,7 @@ namespace ImageProcessorCore.Processors this.numRowsProcessed = 0; this.totalRows = sourceRectangle.Height; - if (this.Parallelism > 1) - { - int partitionCount = this.Parallelism; - - Task[] tasks = new Task[partitionCount]; - - for (int p = 0; p < partitionCount; p++) - { - int current = p; - tasks[p] = Task.Run( - () => - { - int batchSize = sourceRectangle.Height / partitionCount; - int yStart = sourceRectangle.Y + (current * batchSize); - int yEnd = current == partitionCount - 1 - ? sourceRectangle.Bottom - : yStart + batchSize; - - this.Apply(target, source, target.Bounds, sourceRectangle, yStart, yEnd); - }); - } - - Task.WaitAll(tasks); - } - else - { - this.Apply(target, source, target.Bounds, sourceRectangle, sourceRectangle.Y, sourceRectangle.Bottom); - } + this.Apply(target, source, target.Bounds, sourceRectangle, sourceRectangle.Y, sourceRectangle.Bottom); this.AfterApply(target, source, target.Bounds, sourceRectangle); } @@ -88,6 +55,7 @@ namespace ImageProcessorCore.Processors float[] pixels = new float[width * height * 4]; target.SetPixels(width, height, pixels); + // Ensure we always have bounds. if (sourceRectangle == Rectangle.Empty) { sourceRectangle = source.Bounds; @@ -101,33 +69,9 @@ namespace ImageProcessorCore.Processors this.OnApply(target, source, targetRectangle, sourceRectangle); this.numRowsProcessed = 0; - this.totalRows = targetRectangle.Bottom; + this.totalRows = targetRectangle.Height; - if (this.Parallelism > 1) - { - int partitionCount = this.Parallelism; - - Task[] tasks = new Task[partitionCount]; - - for (int p = 0; p < partitionCount; p++) - { - int current = p; - tasks[p] = Task.Run(() => - { - int batchSize = targetRectangle.Bottom / partitionCount; - int yStart = current * batchSize; - int yEnd = current == partitionCount - 1 ? targetRectangle.Bottom : yStart + batchSize; - - this.Apply(target, source, targetRectangle, sourceRectangle, yStart, yEnd); - }); - } - - Task.WaitAll(tasks); - } - else - { - this.Apply(target, source, targetRectangle, sourceRectangle, targetRectangle.Y, targetRectangle.Bottom); - } + this.Apply(target, source, targetRectangle, sourceRectangle, targetRectangle.Y, targetRectangle.Bottom); this.AfterApply(target, source, target.Bounds, sourceRectangle); } diff --git a/src/ImageProcessorCore/Samplers/Processors/CropProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/CropProcessor.cs index e6707afa0..adcd3c180 100644 --- a/src/ImageProcessorCore/Samplers/Processors/CropProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/CropProcessor.cs @@ -15,8 +15,6 @@ namespace ImageProcessorCore.Processors /// protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY) { - int targetY = targetRectangle.Y; - int targetBottom = targetRectangle.Bottom; int startX = targetRectangle.X; int endX = targetRectangle.Right; int sourceX = sourceRectangle.X; @@ -30,15 +28,12 @@ namespace ImageProcessorCore.Processors endY, y => { - if (y >= targetY && y < targetBottom) + for (int x = startX; x < endX; x++) { - for (int x = startX; x < endX; x++) - { - targetPixels[x, y] = sourcePixels[x + sourceX, y + sourceY]; - } - - this.OnRowProcessed(); + targetPixels[x, y] = sourcePixels[x + sourceX, y + sourceY]; } + + this.OnRowProcessed(); }); } } diff --git a/src/ImageProcessorCore/Samplers/Processors/ImageSampler.cs b/src/ImageProcessorCore/Samplers/Processors/ImageSampler.cs index cc8bfe4cc..adfe77432 100644 --- a/src/ImageProcessorCore/Samplers/Processors/ImageSampler.cs +++ b/src/ImageProcessorCore/Samplers/Processors/ImageSampler.cs @@ -9,7 +9,7 @@ namespace ImageProcessorCore.Processors /// Applies sampling methods to an image. /// All processors requiring resampling or resizing should inherit from this. /// - public abstract class ImageSampler : ParallelImageProcessor, IImageSampler + public abstract class ImageSampler : ImageProcessor, IImageSampler { /// public virtual bool Compand { get; set; } = false; diff --git a/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs index 82b07d40b..0431dc95e 100644 --- a/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs @@ -31,9 +31,6 @@ namespace ImageProcessorCore.Processors this.Sampler = sampler; } - /// - public override int Parallelism { get; set; } = 1; - /// /// Gets the sampler to perform the resize operation. /// @@ -62,13 +59,7 @@ namespace ImageProcessorCore.Processors } /// - protected override void Apply( - ImageBase target, - ImageBase source, - Rectangle targetRectangle, - Rectangle sourceRectangle, - int startY, - int endY) + protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY) { // Jump out, we'll deal with that later. if (source.Bounds == target.Bounds && sourceRectangle == targetRectangle) diff --git a/src/ImageProcessorCore/Samplers/Processors/RotateFlipProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/RotateFlipProcessor.cs index 263242fc1..6ef8866ba 100644 --- a/src/ImageProcessorCore/Samplers/Processors/RotateFlipProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/RotateFlipProcessor.cs @@ -34,9 +34,6 @@ namespace ImageProcessorCore.Processors /// public RotateType RotateType { get; } - /// - public override int Parallelism { get; set; } = 1; - /// protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY) { diff --git a/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs index d12bd3ec2..7aafe0e08 100644 --- a/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs @@ -18,9 +18,6 @@ namespace ImageProcessorCore.Processors /// private Matrix3x2 processMatrix; - /// - public override int Parallelism { get; set; } = 1; - /// /// Gets or sets the angle of processMatrix in degrees. /// diff --git a/src/ImageProcessorCore/Samplers/Processors/SkewProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/SkewProcessor.cs index 43e54a1c7..02d5dd9e4 100644 --- a/src/ImageProcessorCore/Samplers/Processors/SkewProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/SkewProcessor.cs @@ -18,9 +18,6 @@ namespace ImageProcessorCore.Processors /// private Matrix3x2 processMatrix; - /// - public override int Parallelism { get; set; } = 1; - /// /// Gets or sets the angle of rotation along the x-axis in degrees. ///