diff --git a/ImageSharp.sln b/ImageSharp.sln index 9f22d8d866..c4abf1ae0a 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -49,6 +49,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Jpeg", " EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Png", "src\ImageSharp.Formats.Png\ImageSharp.Formats.Png.xproj", "{556ABDCF-ED93-4327-BE98-F6815F78B9B8}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Processing", "src\ImageSharp.Processing\ImageSharp.Processing.xproj", "{A623CFE9-9D2B-4528-AD1F-2E834B061134}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -95,6 +97,10 @@ Global {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.Build.0 = Release|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -110,5 +116,6 @@ Global {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {7213767C-0003-41CA-AB18-0223CFA7CE4B} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {556ABDCF-ED93-4327-BE98-F6815F78B9B8} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {A623CFE9-9D2B-4528-AD1F-2E834B061134} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} EndGlobalSection EndGlobal diff --git a/src/ImageSharp.Drawing/Draw.cs b/src/ImageSharp.Drawing/Draw.cs index 14f3db44d4..c10665b832 100644 --- a/src/ImageSharp.Drawing/Draw.cs +++ b/src/ImageSharp.Drawing/Draw.cs @@ -33,7 +33,7 @@ namespace ImageSharp public static Image DrawPolygon(this Image source, IPen pen, IShape shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, shape, options)); + return source.Apply(new DrawPathProcessor(pen, shape, options)); } /// @@ -227,7 +227,7 @@ namespace ImageSharp public static Image DrawPath(this Image source, IPen pen, IPath path, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, path, options)); + return source.Apply(new DrawPathProcessor(pen, path, options)); } /// @@ -241,7 +241,7 @@ namespace ImageSharp public static Image DrawPath(this Image source, IPen pen, IPath path) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, path, GraphicsOptions.Default)); + return source.Apply(new DrawPathProcessor(pen, path, GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs index db9d01153d..4b3fd491da 100644 --- a/src/ImageSharp.Drawing/DrawImage.cs +++ b/src/ImageSharp.Drawing/DrawImage.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Drawing.Processors; /// /// Extension methods for the type. @@ -51,7 +51,7 @@ namespace ImageSharp location = Point.Empty; } - return source.Process(source.Bounds, new DrawImageProcessor(image, size, location, percent)); + return source.Apply(source.Bounds, new DrawImageProcessor(image, size, location, percent)); } } } \ No newline at end of file diff --git a/src/ImageSharp.Drawing/DrawRectangle.cs b/src/ImageSharp.Drawing/DrawRectangle.cs index 8b1cd03e8c..38ed578b65 100644 --- a/src/ImageSharp.Drawing/DrawRectangle.cs +++ b/src/ImageSharp.Drawing/DrawRectangle.cs @@ -33,7 +33,7 @@ namespace ImageSharp public static Image DrawPolygon(this Image source, IPen pen, RectangleF shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, (IPath)new RectangularPolygon(shape), options)); + return source.Apply(new DrawPathProcessor(pen, (IPath)new RectangularPolygon(shape), options)); } /// diff --git a/src/ImageSharp.Drawing/Fill.cs b/src/ImageSharp.Drawing/Fill.cs index abf4310aab..c0f43bdd18 100644 --- a/src/ImageSharp.Drawing/Fill.cs +++ b/src/ImageSharp.Drawing/Fill.cs @@ -28,7 +28,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillProcessor(brush)); + return source.Apply(new FillProcessor(brush)); } /// @@ -56,7 +56,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, IShape shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, shape, options)); + return source.Apply(new FillShapeProcessor(brush, shape, options)); } /// @@ -70,7 +70,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, IShape shape) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, shape, GraphicsOptions.Default)); + return source.Apply(new FillShapeProcessor(brush, shape, GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/FillRectangle.cs b/src/ImageSharp.Drawing/FillRectangle.cs index fc29cb4eb2..d29b58e1b8 100644 --- a/src/ImageSharp.Drawing/FillRectangle.cs +++ b/src/ImageSharp.Drawing/FillRectangle.cs @@ -31,7 +31,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, RectangleF shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, new RectangularPolygon(shape), options)); + return source.Apply(new FillShapeProcessor(brush, new RectangularPolygon(shape), options)); } /// @@ -45,7 +45,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, RectangleF shape) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, new RectangularPolygon(shape), GraphicsOptions.Default)); + return source.Apply(new FillShapeProcessor(brush, new RectangularPolygon(shape), GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs index 535635a45a..53a94d499f 100644 --- a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs @@ -3,11 +3,12 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; using System.Threading.Tasks; + using Processing; /// /// Combines two images together by blending the pixels. @@ -57,6 +58,7 @@ namespace ImageSharp.Processors { if (this.Image.Bounds.Size != this.Size) { + // should Resize be moved to core? this.Image = this.Image.Resize(this.Size.Width, this.Size.Height); } diff --git a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs index a472b6fe6b..150f0c4856 100644 --- a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs @@ -9,7 +9,7 @@ namespace ImageSharp.Drawing.Processors using System.Linq; using System.Numerics; using System.Threading.Tasks; - using ImageSharp.Processors; + using ImageSharp.Processing; using Paths; using Pens; using Pens.Processors; @@ -20,7 +20,7 @@ namespace ImageSharp.Drawing.Processors /// Draws a path using the processor pipeline /// /// The type of the color. - /// + /// public class DrawPathProcessor : ImageProcessor where TColor : struct, IPackedPixel, IEquatable { diff --git a/src/ImageSharp.Drawing/Processors/FillProcessor.cs b/src/ImageSharp.Drawing/Processors/FillProcessor.cs index 9a44fc2abc..309d3670f5 100644 --- a/src/ImageSharp.Drawing/Processors/FillProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillProcessor.cs @@ -10,7 +10,7 @@ namespace ImageSharp.Drawing.Processors using System.Threading.Tasks; using Drawing; - using ImageSharp.Processors; + using ImageSharp.Processing; /// /// Using the bursh as a source of pixels colors blends the brush color with source. diff --git a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs index 078cffe347..d0655341b7 100644 --- a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs @@ -9,7 +9,7 @@ namespace ImageSharp.Drawing.Processors using System.Numerics; using System.Threading.Tasks; using Drawing; - using ImageSharp.Processors; + using ImageSharp.Processing; using Shapes; using Rectangle = ImageSharp.Rectangle; @@ -17,7 +17,7 @@ namespace ImageSharp.Drawing.Processors /// Usinf a brsuh and a shape fills shape with contents of brush the /// /// The type of the color. - /// + /// public class FillShapeProcessor : ImageProcessor where TColor : struct, IPackedPixel, IEquatable { diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 65501dfd7b..1a0512981f 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -37,7 +37,14 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.0.0", "type": "build" diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index 25ec1beb84..9c5da69b6c 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index 05531ef295..90db84c5c5 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index 48893fbb2d..6ca42be0d6 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 50e9b91da4..097bce1c15 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json index 6eae3985a5..a2e2040015 100644 --- a/src/ImageSharp.Formats/project.json +++ b/src/ImageSharp.Formats/project.json @@ -35,11 +35,26 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", - "ImageSharp.Formats.Png": "1.0.0-*", - "ImageSharp.Formats.Bmp": "1.0.0-*", - "ImageSharp.Formats.Jpeg": "1.0.0-*", - "ImageSharp.Formats.Gif": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Png": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Bmp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Jpeg": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Gif": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp/Filters/Binarization/BinaryThreshold.cs b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs similarity index 94% rename from src/ImageSharp/Filters/Binarization/BinaryThreshold.cs rename to src/ImageSharp.Processing/Binarization/BinaryThreshold.cs index ebf28357a2..e72a854209 100644 --- a/src/ImageSharp/Filters/Binarization/BinaryThreshold.cs +++ b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image BinaryThreshold(this Image source, float threshold, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BinaryThresholdProcessor(threshold)); + return source.Apply(rectangle, new BinaryThresholdProcessor(threshold)); } } } diff --git a/src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs b/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs rename to src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs index 8a042c3596..9b31b41b72 100644 --- a/src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs +++ b/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs similarity index 93% rename from src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs rename to src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs index a0be4d9126..bcf104de41 100644 --- a/src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image BlackWhite(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BlackWhiteProcessor()); + return source.Apply(rectangle, new BlackWhiteProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs index 942be785cf..81869437a8 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs similarity index 97% rename from src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs index d0c61bd739..208530616e 100644 --- a/src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -77,7 +77,7 @@ namespace ImageSharp break; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs index 2b8ca88573..bb768e9a6b 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs index d9530ad268..790552a0d9 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs index 84e185b40f..edde7a56bd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs index 026fd2832c..e3490c76b1 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs index 92f4fc1f86..0083cf17f1 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs index 3c92813428..7974b6104a 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md similarity index 100% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs index cde693c42f..4123c847cd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs index eb47c61c21..5fdb94562f 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs b/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs index 67f9525f74..0c46fa0107 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs similarity index 96% rename from src/ImageSharp/Filters/ColorMatrix/Grayscale.cs rename to src/ImageSharp.Processing/ColorMatrix/Grayscale.cs index d98ce27b9a..a703a08f81 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -44,7 +44,7 @@ namespace ImageSharp ? (IImageProcessor)new GrayscaleBt709Processor() : new GrayscaleBt601Processor(); - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs rename to src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs index b3e30f04e1..1a43cbdf2a 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs rename to src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs index 24801b901f..e210777624 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Hue.cs b/src/ImageSharp.Processing/ColorMatrix/Hue.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Hue.cs rename to src/ImageSharp.Processing/ColorMatrix/Hue.cs index 52e7d19b8f..23fc59b446 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Hue.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Hue.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Hue(this Image source, float degrees, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new HueProcessor(degrees)); + return source.Apply(rectangle, new HueProcessor(degrees)); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs index a1de8eb0c9..910e534402 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs b/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs rename to src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs index 295a0d9720..102688c92b 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs rename to src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs index 6f249f3cda..127aacc8bb 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Kodachrome(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new KodachromeProcessor()); + return source.Apply(rectangle, new KodachromeProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs index 60b6a1d20b..061f7b8a05 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Lomograph.cs b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Lomograph.cs rename to src/ImageSharp.Processing/ColorMatrix/Lomograph.cs index 06ba764103..1e8eabd462 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Lomograph.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Lomograph(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new LomographProcessor()); + return source.Apply(rectangle, new LomographProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs index d58e588be2..dd68705312 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Options/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs similarity index 100% rename from src/ImageSharp/Filters/ColorMatrix/Options/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs diff --git a/src/ImageSharp/Filters/ColorMatrix/Options/GrayscaleMode.cs b/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs similarity index 100% rename from src/ImageSharp/Filters/ColorMatrix/Options/GrayscaleMode.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs diff --git a/src/ImageSharp/Filters/ColorMatrix/Polaroid.cs b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Polaroid.cs rename to src/ImageSharp.Processing/ColorMatrix/Polaroid.cs index 5df58cea97..3b2c672243 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Polaroid.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Polaroid(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new PolaroidProcessor()); + return source.Apply(rectangle, new PolaroidProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs index 73bc18e49f..679f9051fd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Saturation.cs b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Saturation.cs rename to src/ImageSharp.Processing/ColorMatrix/Saturation.cs index 101a45eab7..fb2c49188d 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Saturation.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Saturation(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new SaturationProcessor(amount)); + return source.Apply(rectangle, new SaturationProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs index 71bb49c922..7b1f0fd298 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Sepia.cs b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs similarity index 93% rename from src/ImageSharp/Filters/ColorMatrix/Sepia.cs rename to src/ImageSharp.Processing/ColorMatrix/Sepia.cs index a3641bfe30..59f2bdded9 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Sepia.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Sepia(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new SepiaProcessor()); + return source.Apply(rectangle, new SepiaProcessor()); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs index 8353cfa0be..ecab1c479c 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ComparableExtensions.cs b/src/ImageSharp.Processing/ComparableExtensions.cs new file mode 100644 index 0000000000..4512e98b73 --- /dev/null +++ b/src/ImageSharp.Processing/ComparableExtensions.cs @@ -0,0 +1,182 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + using System; + + /// + /// Extension methods for classes that implement . + /// + internal static class ComparableExtensions + { + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static byte Clamp(this byte value, byte min, byte max) + { + // Order is important here as someone might set min to higher than max. + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static uint Clamp(this uint value, uint min, uint max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static int Clamp(this int value, int min, int max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static float Clamp(this float value, float min, float max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static double Clamp(this double value, double min, double max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this int value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this float value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this double value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Swaps the references to two objects in memory. + /// + /// The first reference. + /// The second reference. + /// The type of object. + public static void Swap(ref T first, ref T second) + { + T temp = second; + second = first; + first = temp; + } + } +} diff --git a/src/ImageSharp.Processing/Constants.cs b/src/ImageSharp.Processing/Constants.cs new file mode 100644 index 0000000000..0071471a78 --- /dev/null +++ b/src/ImageSharp.Processing/Constants.cs @@ -0,0 +1,18 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + /// + /// Common constants used throughout the project + /// + internal static class Constants + { + /// + /// The epsilon for comparing floating point numbers. + /// + public static readonly float Epsilon = 0.001f; + } +} diff --git a/src/ImageSharp/Filters/Convolution/BoxBlur.cs b/src/ImageSharp.Processing/Convolution/BoxBlur.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/BoxBlur.cs rename to src/ImageSharp.Processing/Convolution/BoxBlur.cs index e07da5b302..4dac449b2b 100644 --- a/src/ImageSharp/Filters/Convolution/BoxBlur.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlur.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image BoxBlur(this Image source, int radius, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BoxBlurProcessor(radius)); + return source.Apply(rectangle, new BoxBlurProcessor(radius)); } } } diff --git a/src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs b/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs rename to src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs index 98ab075f1d..389fc0c0c3 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs b/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs rename to src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs index 9db67f0624..d9fbf9e701 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs b/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs rename to src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs index 80e3c6f92e..c8f2c86b35 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs b/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs rename to src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs index b771cc5625..3cb139cddb 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Convolution/DetectEdges.cs b/src/ImageSharp.Processing/Convolution/DetectEdges.cs similarity index 98% rename from src/ImageSharp/Filters/Convolution/DetectEdges.cs rename to src/ImageSharp.Processing/Convolution/DetectEdges.cs index fe5cf01a2b..8b12e75e1e 100644 --- a/src/ImageSharp/Filters/Convolution/DetectEdges.cs +++ b/src/ImageSharp.Processing/Convolution/DetectEdges.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -145,7 +145,7 @@ namespace ImageSharp public static Image DetectEdges(this Image source, Rectangle rectangle, IEdgeDetectorProcessor filter) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, filter); + return source.Apply(rectangle, filter); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs index 40cdd2052e..94f7cfebb2 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs index a317c183d1..1dd526785e 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs index 332b10e41c..ef2feba0be 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs index f4b2442d0f..baa0477330 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs index 84d14e7cf4..b15a46cd19 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs index 6bc440e236..63e688ebb9 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs index 89e29e2117..8eed6b8d29 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs index 7b8e965448..7334ecb124 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs index 112d1c5175..027e9e20e8 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs index a3d719ba7e..08189d7622 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs index f7586e11f3..cc556dfb81 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs index cb05599bf0..630d8a24dd 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs index 3c9c818d3a..107a145660 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs index ebca2018b5..1fb0bcd51e 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Convolution/GaussianBlur.cs b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/GaussianBlur.cs rename to src/ImageSharp.Processing/Convolution/GaussianBlur.cs index 0f03864b53..0b090e2469 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianBlur.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image GaussianBlur(this Image source, float sigma, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new GaussianBlurProcessor(sigma)); + return source.Apply(rectangle, new GaussianBlurProcessor(sigma)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs b/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs rename to src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs index 81fa3dce42..014d0b9e0d 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Convolution/GaussianSharpen.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/GaussianSharpen.cs rename to src/ImageSharp.Processing/Convolution/GaussianSharpen.cs index 39beddf46d..b94384e8c8 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianSharpen.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image GaussianSharpen(this Image source, float sigma, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new GaussianSharpenProcessor(sigma)); + return source.Apply(rectangle, new GaussianSharpenProcessor(sigma)); } } } diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs rename to src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs index 5030085a00..76d0450a9c 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Convolution/Options/EdgeDetection.cs b/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs similarity index 100% rename from src/ImageSharp/Filters/Convolution/Options/EdgeDetection.cs rename to src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs diff --git a/src/ImageSharp/Filters/Effects/Alpha.cs b/src/ImageSharp.Processing/Effects/Alpha.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Alpha.cs rename to src/ImageSharp.Processing/Effects/Alpha.cs index 8c765472de..84ffc79da9 100644 --- a/src/ImageSharp/Filters/Effects/Alpha.cs +++ b/src/ImageSharp.Processing/Effects/Alpha.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Alpha(this Image source, int percent, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new AlphaProcessor(percent)); + return source.Apply(rectangle, new AlphaProcessor(percent)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs b/src/ImageSharp.Processing/Effects/AlphaProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs rename to src/ImageSharp.Processing/Effects/AlphaProcessor.cs index 59c9352808..498df371eb 100644 --- a/src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs +++ b/src/ImageSharp.Processing/Effects/AlphaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/BackgroundColor.cs b/src/ImageSharp.Processing/Effects/BackgroundColor.cs similarity index 89% rename from src/ImageSharp/Filters/Effects/BackgroundColor.cs rename to src/ImageSharp.Processing/Effects/BackgroundColor.cs index d7971ba9ce..3610a019e7 100644 --- a/src/ImageSharp/Filters/Effects/BackgroundColor.cs +++ b/src/ImageSharp.Processing/Effects/BackgroundColor.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -24,7 +24,7 @@ namespace ImageSharp public static Image BackgroundColor(this Image source, TColor color) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(source.Bounds, new BackgroundColorProcessor(color)); + return source.Apply(source.Bounds, new BackgroundColorProcessor(color)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs b/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs rename to src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs index 3e8ea5417a..5511d0a926 100644 --- a/src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs +++ b/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Brightness.cs b/src/ImageSharp.Processing/Effects/Brightness.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Brightness.cs rename to src/ImageSharp.Processing/Effects/Brightness.cs index 6f051605d8..cac23e5fd1 100644 --- a/src/ImageSharp/Filters/Effects/Brightness.cs +++ b/src/ImageSharp.Processing/Effects/Brightness.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Brightness(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BrightnessProcessor(amount)); + return source.Apply(rectangle, new BrightnessProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs b/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs rename to src/ImageSharp.Processing/Effects/BrightnessProcessor.cs index 70c6bd6b03..8423542519 100644 --- a/src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs +++ b/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Contrast.cs b/src/ImageSharp.Processing/Effects/Contrast.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Contrast.cs rename to src/ImageSharp.Processing/Effects/Contrast.cs index 338ae1d1f8..11dcaf6bdd 100644 --- a/src/ImageSharp/Filters/Effects/Contrast.cs +++ b/src/ImageSharp.Processing/Effects/Contrast.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Contrast(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new ContrastProcessor(amount)); + return source.Apply(rectangle, new ContrastProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs b/src/ImageSharp.Processing/Effects/ContrastProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs rename to src/ImageSharp.Processing/Effects/ContrastProcessor.cs index 00c5d441a2..7ee72321bf 100644 --- a/src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs +++ b/src/ImageSharp.Processing/Effects/ContrastProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Invert.cs b/src/ImageSharp.Processing/Effects/Invert.cs similarity index 93% rename from src/ImageSharp/Filters/Effects/Invert.cs rename to src/ImageSharp.Processing/Effects/Invert.cs index 95a58835c7..cb4e159b31 100644 --- a/src/ImageSharp/Filters/Effects/Invert.cs +++ b/src/ImageSharp.Processing/Effects/Invert.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Invert(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new InvertProcessor()); + return source.Apply(rectangle, new InvertProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs b/src/ImageSharp.Processing/Effects/InvertProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs rename to src/ImageSharp.Processing/Effects/InvertProcessor.cs index 7ceb11194a..738c32c882 100644 --- a/src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs +++ b/src/ImageSharp.Processing/Effects/InvertProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/OilPainting.cs b/src/ImageSharp.Processing/Effects/OilPainting.cs similarity index 95% rename from src/ImageSharp/Filters/Effects/OilPainting.cs rename to src/ImageSharp.Processing/Effects/OilPainting.cs index 59195c400a..591da88f23 100644 --- a/src/ImageSharp/Filters/Effects/OilPainting.cs +++ b/src/ImageSharp.Processing/Effects/OilPainting.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -49,7 +49,7 @@ namespace ImageSharp throw new ArgumentOutOfRangeException(nameof(brushSize)); } - return source.Process(rectangle, new OilPaintingProcessor(levels, brushSize)); + return source.Apply(rectangle, new OilPaintingProcessor(levels, brushSize)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs b/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs rename to src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs index 7cbcafaba8..d3f8d55147 100644 --- a/src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs +++ b/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Pixelate.cs b/src/ImageSharp.Processing/Effects/Pixelate.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Pixelate.cs rename to src/ImageSharp.Processing/Effects/Pixelate.cs index 6fada475b7..811421b54f 100644 --- a/src/ImageSharp/Filters/Effects/Pixelate.cs +++ b/src/ImageSharp.Processing/Effects/Pixelate.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -45,7 +45,7 @@ namespace ImageSharp throw new ArgumentOutOfRangeException(nameof(size)); } - return source.Process(rectangle, new PixelateProcessor(size)); + return source.Apply(rectangle, new PixelateProcessor(size)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs b/src/ImageSharp.Processing/Effects/PixelateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs rename to src/ImageSharp.Processing/Effects/PixelateProcessor.cs index 110cface2e..3b62bce792 100644 --- a/src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs +++ b/src/ImageSharp.Processing/Effects/PixelateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Collections.Generic; diff --git a/src/ImageSharp.Processing/ImageMaths.cs b/src/ImageSharp.Processing/ImageMaths.cs new file mode 100644 index 0000000000..c8046137ba --- /dev/null +++ b/src/ImageSharp.Processing/ImageMaths.cs @@ -0,0 +1,286 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + using System; + using System.Linq; + using System.Numerics; + + /// + /// Provides common mathematical methods. + /// + internal static class ImageMaths + { + /// + /// Returns how many bits are required to store the specified number of colors. + /// Performs a Log2() on the value. + /// + /// The number of colors. + /// + /// The + /// + public static int GetBitsNeededForColorDepth(int colors) + { + return (int)Math.Ceiling(Math.Log(colors, 2)); + } + + /// + /// Implementation of 1D Gaussian G(x) function + /// + /// The x provided to G(x). + /// The spread of the blur. + /// The Gaussian G(x) + public static float Gaussian(float x, float sigma) + { + const float Numerator = 1.0f; + float denominator = (float)(Math.Sqrt(2 * Math.PI) * sigma); + + float exponentNumerator = -x * x; + float exponentDenominator = (float)(2 * Math.Pow(sigma, 2)); + + float left = Numerator / denominator; + float right = (float)Math.Exp(exponentNumerator / exponentDenominator); + + return left * right; + } + + /// + /// Returns the result of a B-C filter against the given value. + /// + /// + /// The value to process. + /// The B-Spline curve variable. + /// The Cardinal curve variable. + /// + /// The . + /// + public static float GetBcValue(float x, float b, float c) + { + float temp; + + if (x < 0F) + { + x = -x; + } + + temp = x * x; + if (x < 1F) + { + x = ((12 - (9 * b) - (6 * c)) * (x * temp)) + ((-18 + (12 * b) + (6 * c)) * temp) + (6 - (2 * b)); + return x / 6F; + } + + if (x < 2F) + { + x = ((-b - (6 * c)) * (x * temp)) + (((6 * b) + (30 * c)) * temp) + (((-12 * b) - (48 * c)) * x) + ((8 * b) + (24 * c)); + return x / 6F; + } + + return 0F; + } + + /// + /// Gets the result of a sine cardinal function for the given value. + /// + /// The value to calculate the result for. + /// + /// The . + /// + public static float SinC(float x) + { + if (Math.Abs(x) > Constants.Epsilon) + { + x *= (float)Math.PI; + return Clean((float)Math.Sin(x) / x); + } + + return 1.0f; + } + + /// + /// Returns the given degrees converted to radians. + /// + /// The angle in degrees. + /// + /// The representing the degree as radians. + /// + public static float DegreesToRadians(float degrees) + { + return degrees * (float)(Math.PI / 180); + } + + /// + /// Gets the bounding from the given points. + /// + /// + /// The designating the top left position. + /// + /// + /// The designating the bottom right position. + /// + /// + /// The bounding . + /// + public static Rectangle GetBoundingRectangle(Point topLeft, Point bottomRight) + { + return new Rectangle(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y); + } + + /// + /// Gets the bounding from the given matrix. + /// + /// The source rectangle. + /// The transformation matrix. + /// + /// The . + /// + public static Rectangle GetBoundingRectangle(Rectangle rectangle, Matrix3x2 matrix) + { + Vector2 leftTop = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Top), matrix); + Vector2 rightTop = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Top), matrix); + Vector2 leftBottom = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Bottom), matrix); + Vector2 rightBottom = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Bottom), matrix); + + Vector2[] allCorners = { leftTop, rightTop, leftBottom, rightBottom }; + float extentX = allCorners.Select(v => v.X).Max() - allCorners.Select(v => v.X).Min(); + float extentY = allCorners.Select(v => v.Y).Max() - allCorners.Select(v => v.Y).Min(); + return new Rectangle(0, 0, (int)extentX, (int)extentY); + } + + /// + /// Finds the bounding rectangle based on the first instance of any color component other + /// than the given one. + /// + /// The pixel format. + /// The to search within. + /// The color component value to remove. + /// The channel to test against. + /// + /// The . + /// + public static Rectangle GetFilteredBoundingRectangle(ImageBase bitmap, float componentValue, RgbaComponent channel = RgbaComponent.B) + where TColor : struct, IPackedPixel, IEquatable + { + int width = bitmap.Width; + int height = bitmap.Height; + Point topLeft = default(Point); + Point bottomRight = default(Point); + + Func, int, int, float, bool> delegateFunc; + + // Determine which channel to check against + switch (channel) + { + case RgbaComponent.R: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().X - b) > Constants.Epsilon; + break; + + case RgbaComponent.G: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Y - b) > Constants.Epsilon; + break; + + case RgbaComponent.B: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Z - b) > Constants.Epsilon; + break; + + default: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().W - b) > Constants.Epsilon; + break; + } + + Func, int> getMinY = pixels => + { + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return y; + } + } + } + + return 0; + }; + + Func, int> getMaxY = pixels => + { + for (int y = height - 1; y > -1; y--) + { + for (int x = 0; x < width; x++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return y; + } + } + } + + return height; + }; + + Func, int> getMinX = pixels => + { + for (int x = 0; x < width; x++) + { + for (int y = 0; y < height; y++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return x; + } + } + } + + return 0; + }; + + Func, int> getMaxX = pixels => + { + for (int x = width - 1; x > -1; x--) + { + for (int y = 0; y < height; y++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return x; + } + } + } + + return height; + }; + + using (PixelAccessor bitmapPixels = bitmap.Lock()) + { + topLeft.Y = getMinY(bitmapPixels); + topLeft.X = getMinX(bitmapPixels); + bottomRight.Y = (getMaxY(bitmapPixels) + 1).Clamp(0, height); + bottomRight.X = (getMaxX(bitmapPixels) + 1).Clamp(0, width); + } + + return GetBoundingRectangle(topLeft, bottomRight); + } + + /// + /// Ensures that any passed double is correctly rounded to zero + /// + /// The value to clean. + /// + /// The + /// . + private static float Clean(float x) + { + if (Math.Abs(x) < Constants.Epsilon) + { + return 0F; + } + + return x; + } + } +} diff --git a/src/ImageSharp.Processing/ImageSharp.Processing.xproj b/src/ImageSharp.Processing/ImageSharp.Processing.xproj new file mode 100644 index 0000000000..1fdba5ce9a --- /dev/null +++ b/src/ImageSharp.Processing/ImageSharp.Processing.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + a623cfe9-9d2b-4528-ad1f-2e834b061134 + ImageSharp.Processing + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Filters/Overlays/Glow.cs b/src/ImageSharp.Processing/Overlays/Glow.cs similarity index 98% rename from src/ImageSharp/Filters/Overlays/Glow.cs rename to src/ImageSharp.Processing/Overlays/Glow.cs index 4f5a05852a..23110126ef 100644 --- a/src/ImageSharp/Filters/Overlays/Glow.cs +++ b/src/ImageSharp.Processing/Overlays/Glow.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -88,7 +88,7 @@ namespace ImageSharp processor.GlowColor = color; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs b/src/ImageSharp.Processing/Overlays/GlowProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs rename to src/ImageSharp.Processing/Overlays/GlowProcessor.cs index 6e7d27929e..feff8754ce 100644 --- a/src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs +++ b/src/ImageSharp.Processing/Overlays/GlowProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Overlays/Vignette.cs b/src/ImageSharp.Processing/Overlays/Vignette.cs similarity index 98% rename from src/ImageSharp/Filters/Overlays/Vignette.cs rename to src/ImageSharp.Processing/Overlays/Vignette.cs index 7f5ade12d3..f1db1754a7 100644 --- a/src/ImageSharp/Filters/Overlays/Vignette.cs +++ b/src/ImageSharp.Processing/Overlays/Vignette.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -90,7 +90,7 @@ namespace ImageSharp processor.VignetteColor = color; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs b/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs rename to src/ImageSharp.Processing/Overlays/VignetteProcessor.cs index ddb7b569fd..7867025eba 100644 --- a/src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs +++ b/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Properties/AssemblyInfo.cs b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..83f4268e74 --- /dev/null +++ b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs @@ -0,0 +1,41 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] +[assembly: InternalsVisibleTo("ImageSharp.Drawing")] \ No newline at end of file diff --git a/src/ImageSharp/Filters/Transforms/AutoOrient.cs b/src/ImageSharp.Processing/Transforms/AutoOrient.cs similarity index 99% rename from src/ImageSharp/Filters/Transforms/AutoOrient.cs rename to src/ImageSharp.Processing/Transforms/AutoOrient.cs index cdd62624ad..ef5b81a18b 100644 --- a/src/ImageSharp/Filters/Transforms/AutoOrient.cs +++ b/src/ImageSharp.Processing/Transforms/AutoOrient.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs b/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs rename to src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs index 80f02c18f6..40271ebb4c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Crop.cs b/src/ImageSharp.Processing/Transforms/Crop.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Crop.cs rename to src/ImageSharp.Processing/Transforms/Crop.cs index 8b5ad7dafd..62af260f40 100644 --- a/src/ImageSharp/Filters/Transforms/Crop.cs +++ b/src/ImageSharp.Processing/Transforms/Crop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -41,7 +41,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { CropProcessor processor = new CropProcessor(cropRectangle); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs b/src/ImageSharp.Processing/Transforms/CropProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs rename to src/ImageSharp.Processing/Transforms/CropProcessor.cs index 7efd9b9241..9dfd38737c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/CropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Transforms/EntropyCrop.cs b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs similarity index 92% rename from src/ImageSharp/Filters/Transforms/EntropyCrop.cs rename to src/ImageSharp.Processing/Transforms/EntropyCrop.cs index a2abcf38dd..56c22b119a 100644 --- a/src/ImageSharp/Filters/Transforms/EntropyCrop.cs +++ b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -25,7 +25,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { EntropyCropProcessor processor = new EntropyCropProcessor(threshold); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs b/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs rename to src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs index 78bef63b01..fc0c649e1a 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Transforms/Flip.cs b/src/ImageSharp.Processing/Transforms/Flip.cs similarity index 92% rename from src/ImageSharp/Filters/Transforms/Flip.cs rename to src/ImageSharp.Processing/Transforms/Flip.cs index 6feb726b4d..49f0f95d65 100644 --- a/src/ImageSharp/Filters/Transforms/Flip.cs +++ b/src/ImageSharp.Processing/Transforms/Flip.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -25,7 +25,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { FlipProcessor processor = new FlipProcessor(flipType); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs b/src/ImageSharp.Processing/Transforms/FlipProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs rename to src/ImageSharp.Processing/Transforms/FlipProcessor.cs index 4973c10d6d..f14ca8355d 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/FlipProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs b/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs rename to src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs index b6f3d5a66e..ba8342e80c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs +++ b/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs b/src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs rename to src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs index c0adb4da45..67010a777f 100644 --- a/src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs +++ b/src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerated anchor positions to apply to resized images. diff --git a/src/ImageSharp/Filters/Transforms/Options/FlipType.cs b/src/ImageSharp.Processing/Transforms/Options/FlipType.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Options/FlipType.cs rename to src/ImageSharp.Processing/Transforms/Options/FlipType.cs index 5a9668316e..3c66da697f 100644 --- a/src/ImageSharp/Filters/Transforms/Options/FlipType.cs +++ b/src/ImageSharp.Processing/Transforms/Options/FlipType.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Provides enumeration over how a image should be flipped. diff --git a/src/ImageSharp/Filters/Transforms/Options/Orientation.cs b/src/ImageSharp.Processing/Transforms/Options/Orientation.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/Orientation.cs rename to src/ImageSharp.Processing/Transforms/Options/Orientation.cs index d7e96ddf4f..b8147348f7 100644 --- a/src/ImageSharp/Filters/Transforms/Options/Orientation.cs +++ b/src/ImageSharp.Processing/Transforms/Options/Orientation.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerates the available orientation values supplied by EXIF metadata. diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs similarity index 99% rename from src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs index 97a88115e7..4ed147aedf 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { using System; using System.Linq; diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs index 7a1cc3c940..dc6092de84 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerated resize modes to apply to resized images. diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs index 3cfb3d6c1a..3c67cb9501 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { using System.Collections.Generic; using System.Linq; diff --git a/src/ImageSharp/Filters/Transforms/Options/RotateType.cs b/src/ImageSharp.Processing/Transforms/Options/RotateType.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Options/RotateType.cs rename to src/ImageSharp.Processing/Transforms/Options/RotateType.cs index 0545aa910e..9f09cec280 100644 --- a/src/ImageSharp/Filters/Transforms/Options/RotateType.cs +++ b/src/ImageSharp.Processing/Transforms/Options/RotateType.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Provides enumeration over how the image should be rotated. diff --git a/src/ImageSharp/Filters/Transforms/Pad.cs b/src/ImageSharp.Processing/Transforms/Pad.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Pad.cs rename to src/ImageSharp.Processing/Transforms/Pad.cs index 265edd23dd..0f25ed0641 100644 --- a/src/ImageSharp/Filters/Transforms/Pad.cs +++ b/src/ImageSharp.Processing/Transforms/Pad.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs index a0bfc1413b..e40bf59f92 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the bicubic kernel algorithm W(x) as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs index 70879ec804..f174ef48bd 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the box algorithm. Similar to nearest neighbor when upscaling. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs index 7751aa08b7..0725ecb537 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The Catmull-Rom filter is a well known standard Cubic Filter often used as a interpolation function. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs index 9af35e8e82..66cc36a21f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { /// /// The Hermite filter is type of smoothed triangular interpolation Filter, diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs index ce100a8c74..6339d9d8ea 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Encapsulates an interpolation algorithm for resampling images. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs index 3d25cf859a..05d6c630f9 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs index f771de1a52..094e5bd67f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs index 4584b258f5..9022aaaaf0 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs index 03f5a6d7ba..4769d38476 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs index f4bc3a6f27..38ca614c4a 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the mitchell algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs index 12ba3ae1a3..f1e5ab8fdb 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the nearest neighbor algorithm. This uses an unscaled filter diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs index 6ef90bda4b..1b060e6e3f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Robidoux algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs index 8755bf3e49..86c7b0517c 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Robidoux Sharp algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs index 921ea23a84..abd5b835c6 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the spline algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs index c53d5a1466..bf88b65df8 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the triangle (bilinear) algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs index eb55061515..6fafd8ebb2 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the welch algorithm. diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs b/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs rename to src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs index f29560835c..d64fb2858f 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Transforms/Resize.cs b/src/ImageSharp.Processing/Transforms/Resize.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Resize.cs rename to src/ImageSharp.Processing/Transforms/Resize.cs index f1e62df8ef..992136a217 100644 --- a/src/ImageSharp/Filters/Transforms/Resize.cs +++ b/src/ImageSharp.Processing/Transforms/Resize.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -152,7 +152,7 @@ namespace ImageSharp processor = new ResizeProcessor(sampler, width, height, targetRectangle); } - return source.Process(sourceRectangle, processor); + return source.Apply(sourceRectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs b/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs rename to src/ImageSharp.Processing/Transforms/ResizeProcessor.cs index 48f6b50368..10fe68f90c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Rotate.cs b/src/ImageSharp.Processing/Transforms/Rotate.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Rotate.cs rename to src/ImageSharp.Processing/Transforms/Rotate.cs index 3d88523c67..85cfb91e85 100644 --- a/src/ImageSharp/Filters/Transforms/Rotate.cs +++ b/src/ImageSharp.Processing/Transforms/Rotate.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -52,7 +52,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { RotateProcessor processor = new RotateProcessor { Angle = degrees, Expand = expand }; - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } diff --git a/src/ImageSharp/Filters/Transforms/RotateFlip.cs b/src/ImageSharp.Processing/Transforms/RotateFlip.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/RotateFlip.cs rename to src/ImageSharp.Processing/Transforms/RotateFlip.cs index 02eb7b7028..e69f183380 100644 --- a/src/ImageSharp/Filters/Transforms/RotateFlip.cs +++ b/src/ImageSharp.Processing/Transforms/RotateFlip.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs b/src/ImageSharp.Processing/Transforms/RotateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs rename to src/ImageSharp.Processing/Transforms/RotateProcessor.cs index e81cd7e57e..4d28f5bea9 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/RotateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Skew.cs b/src/ImageSharp.Processing/Transforms/Skew.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Skew.cs rename to src/ImageSharp.Processing/Transforms/Skew.cs index dab0ace2fd..914d9b5eb5 100644 --- a/src/ImageSharp/Filters/Transforms/Skew.cs +++ b/src/ImageSharp.Processing/Transforms/Skew.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -41,7 +41,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { SkewProcessor processor = new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand }; - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs b/src/ImageSharp.Processing/Transforms/SkewProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs rename to src/ImageSharp.Processing/Transforms/SkewProcessor.cs index e13d4995b8..7c6d72c188 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/SkewProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/project.json b/src/ImageSharp.Processing/project.json new file mode 100644 index 0000000000..e16ebd756f --- /dev/null +++ b/src/ImageSharp.Processing/project.json @@ -0,0 +1,78 @@ +{ + "version": "1.0.0-alpha1-*", + "title": "ImageSharp.Processing", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1" + }, + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Image/IImageProcessor.cs b/src/ImageSharp/Image/IImageProcessor.cs index 1395962150..fae0c23b8a 100644 --- a/src/ImageSharp/Image/IImageProcessor.cs +++ b/src/ImageSharp/Image/IImageProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Image/ImageProcessingExtensions.cs b/src/ImageSharp/Image/ImageProcessingExtensions.cs index 68a3ab2160..d9073ad16f 100644 --- a/src/ImageSharp/Image/ImageProcessingExtensions.cs +++ b/src/ImageSharp/Image/ImageProcessingExtensions.cs @@ -6,7 +6,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -21,10 +21,10 @@ namespace ImageSharp /// The image this method extends. /// The processor to apply to the image. /// The . - internal static Image Process(this Image source, IImageProcessor processor) + public static Image Apply(this Image source, IImageProcessor processor) where TColor : struct, IPackedPixel, IEquatable { - return Process(source, source.Bounds, processor); + return Apply(source, source.Bounds, processor); } /// @@ -38,7 +38,7 @@ namespace ImageSharp /// /// The processors to apply to the image. /// The . - internal static Image Process(this Image source, Rectangle sourceRectangle, IImageProcessor processor) + public static Image Apply(this Image source, Rectangle sourceRectangle, IImageProcessor processor) where TColor : struct, IPackedPixel, IEquatable { processor.Apply(source, sourceRectangle); diff --git a/src/ImageSharp/ImageProcessor.cs b/src/ImageSharp/ImageProcessor.cs index 49b60b6781..79bc3ee1e6 100644 --- a/src/ImageSharp/ImageProcessor.cs +++ b/src/ImageSharp/ImageProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 3160268d73..74f091c342 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -15,9 +15,22 @@ }, "dependencies": { "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", - "ImageSharp": "1.0.0-*", - "ImageSharp.Drawing": "1.0.0-*", - "ImageSharp.Formats": "1.0.0-*" + "ImageSharp": { + "target": "project", + "version": "*" + }, + "ImageSharp.Drawing": { + "target": "project", + "version": "*" + }, + "ImageSharp.Formats": { + "target": "project", + "version": "*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "*" + }, }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs b/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs index d2e6dcbc1a..10d6253fd3 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs @@ -6,6 +6,7 @@ namespace ImageSharp.Tests { using System.IO; + using Processing; using Xunit; public class AutoOrientTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs b/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs index c07071e708..26f9646769 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class FlipTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs index 6796ba6176..de6c8620f6 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs @@ -5,7 +5,6 @@ namespace ImageSharp.Tests { - using Processors; using System.IO; using Xunit; diff --git a/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs b/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs index b29ab01161..a7a814406d 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs @@ -7,7 +7,7 @@ namespace ImageSharp.Tests { using System; using System.IO; - + using Processing; using Xunit; public class ResizeTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs b/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs index 04704b672e..1cccef48a3 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class RotateFlipTest : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs b/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs index 96fb39e07a..406edda37f 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class RotateTest : FileTestBase diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index 40ff653bf1..396aa5236a 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -20,11 +20,24 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "*" + }, "xunit": "2.2.0-*", "dotnet-test-xunit": "2.2.0-*", - "ImageSharp.Drawing": "1.0.0-*", - "ImageSharp.Formats": "1.0.0-*" + "ImageSharp.Drawing": { + "target": "project", + "version": "*" + }, + "ImageSharp.Formats": { + "target": "project", + "version": "*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "*" + } }, "frameworks": { "netcoreapp1.1": {