From 7cc5398365854ef1b47ea9148bd00e99b0f4817e Mon Sep 17 00:00:00 2001 From: dirk Date: Sun, 23 Oct 2016 17:51:02 +0200 Subject: [PATCH] Added extra interface IPackedPixel so we can easier add extra interfaces. Former-commit-id: 6fbacd8b3fc9f85f4fd8571c20ff5fd12e5057b8 Former-commit-id: 44b521a163f472068e0dea15334c9361c8bc5a28 Former-commit-id: d53a1519d6bc0573a50bbf397ebde59e61873957 --- src/ImageProcessorCore/Colors/Color.cs | 2 +- .../Colors/PackedPixel/IPackedPixel.cs | 16 ++++++++++++++++ src/ImageProcessorCore/Filters/Alpha.cs | 4 ++-- .../Filters/BackgroundColor.cs | 2 +- .../Filters/BinaryThreshold.cs | 4 ++-- src/ImageProcessorCore/Filters/BlackWhite.cs | 4 ++-- src/ImageProcessorCore/Filters/Blend.cs | 4 ++-- src/ImageProcessorCore/Filters/Brightness.cs | 4 ++-- src/ImageProcessorCore/Filters/ColorBlindness.cs | 4 ++-- src/ImageProcessorCore/Filters/Contrast.cs | 4 ++-- src/ImageProcessorCore/Filters/Glow.cs | 10 +++++----- src/ImageProcessorCore/Filters/Grayscale.cs | 4 ++-- src/ImageProcessorCore/Filters/Hue.cs | 4 ++-- src/ImageProcessorCore/Filters/Invert.cs | 4 ++-- src/ImageProcessorCore/Filters/Kodachrome.cs | 4 ++-- src/ImageProcessorCore/Filters/Lomograph.cs | 4 ++-- src/ImageProcessorCore/Filters/Polaroid.cs | 4 ++-- src/ImageProcessorCore/Filters/Saturation.cs | 4 ++-- src/ImageProcessorCore/Filters/Sepia.cs | 4 ++-- src/ImageProcessorCore/Filters/Vignette.cs | 10 +++++----- src/ImageProcessorCore/Formats/Bmp/BmpDecoder.cs | 2 +- .../Formats/Bmp/BmpDecoderCore.cs | 2 +- src/ImageProcessorCore/Formats/Bmp/BmpEncoder.cs | 2 +- src/ImageProcessorCore/Formats/Gif/GifDecoder.cs | 2 +- .../Formats/Gif/GifDecoderCore.cs | 2 +- src/ImageProcessorCore/Formats/Gif/GifEncoder.cs | 2 +- .../Formats/Gif/GifEncoderCore.cs | 10 +++++----- src/ImageProcessorCore/Formats/IImageDecoder.cs | 2 +- src/ImageProcessorCore/Formats/IImageEncoder.cs | 2 +- .../Formats/Jpg/JpegDecoder.cs | 2 +- .../Jpg/JpegDecoderCore.cs.REMOVED.git-id | 2 +- .../Formats/Jpg/JpegEncoder.cs | 2 +- .../Formats/Jpg/JpegEncoderCore.cs | 4 ++-- src/ImageProcessorCore/Formats/Png/PngDecoder.cs | 2 +- .../Formats/Png/PngDecoderCore.cs | 6 +++--- src/ImageProcessorCore/Formats/Png/PngEncoder.cs | 2 +- .../Formats/Png/PngEncoderCore.cs | 8 ++++---- src/ImageProcessorCore/Image/Image.cs | 2 +- .../Image/ImageIOExtensions.cs | 9 +++++---- .../Image/ImageProcessingExtensions.cs | 16 ++++++++-------- .../Profiles/Exif/ExifProfile.cs | 2 +- src/ImageProcessorCore/Quantizers/IQuantizer.cs | 2 +- .../Quantizers/Octree/OctreeQuantizer.cs | 2 +- .../Quantizers/Octree/Quantizer.cs | 2 +- .../Quantizers/Palette/PaletteQuantizer.cs | 2 +- src/ImageProcessorCore/Quantizers/Quantize.cs | 4 ++-- .../Quantizers/QuantizedImage.cs | 2 +- .../Quantizers/Wu/WuQuantizer.cs | 2 +- src/ImageProcessorCore/Samplers/AutoOrient.cs | 4 ++-- src/ImageProcessorCore/Samplers/BoxBlur.cs | 4 ++-- src/ImageProcessorCore/Samplers/Crop.cs | 4 ++-- src/ImageProcessorCore/Samplers/DetectEdges.cs | 12 ++++++------ src/ImageProcessorCore/Samplers/EntropyCrop.cs | 2 +- src/ImageProcessorCore/Samplers/Flip.cs | 2 +- src/ImageProcessorCore/Samplers/GuassianBlur.cs | 4 ++-- .../Samplers/GuassianSharpen.cs | 4 ++-- src/ImageProcessorCore/Samplers/OilPainting.cs | 4 ++-- src/ImageProcessorCore/Samplers/Pad.cs | 2 +- src/ImageProcessorCore/Samplers/Pixelate.cs | 4 ++-- .../Processors/CompandingResizeProcessor.cs | 2 +- .../Processors/Convolution/BoxBlurProcessor.cs | 2 +- .../Convolution/Convolution2PassFilter.cs | 2 +- .../EdgeDetection/EdgeDetectorCompassFilter.cs | 2 +- .../Convolution/EdgeDetection/KirschProcessor.cs | 2 +- .../EdgeDetection/RobinsonProcessor.cs | 2 +- .../Convolution/GuassianBlurProcessor.cs | 2 +- .../Convolution/GuassianSharpenProcessor.cs | 2 +- .../Samplers/Processors/EntropyCropProcessor.cs | 2 +- .../Samplers/Processors/FlipProcessor.cs | 2 +- .../Samplers/Processors/ResizeProcessor.cs | 2 +- .../Samplers/Processors/RotateProcessor.cs | 2 +- src/ImageProcessorCore/Samplers/Resize.cs | 12 ++++++------ src/ImageProcessorCore/Samplers/Rotate.cs | 6 +++--- src/ImageProcessorCore/Samplers/RotateFlip.cs | 2 +- src/ImageProcessorCore/Samplers/Skew.cs | 4 ++-- 75 files changed, 155 insertions(+), 138 deletions(-) create mode 100644 src/ImageProcessorCore/Colors/PackedPixel/IPackedPixel.cs diff --git a/src/ImageProcessorCore/Colors/Color.cs b/src/ImageProcessorCore/Colors/Color.cs index cad353a805..7b1dde5122 100644 --- a/src/ImageProcessorCore/Colors/Color.cs +++ b/src/ImageProcessorCore/Colors/Color.cs @@ -17,7 +17,7 @@ namespace ImageProcessorCore /// This struct is fully mutable. This is done (against the guidelines) for the sake of performance, /// as it avoids the need to create new values for modification operations. /// - public partial struct Color : IPackedVector, IEquatable + public partial struct Color : IPackedPixel, IEquatable { /// /// The maximum byte value. diff --git a/src/ImageProcessorCore/Colors/PackedPixel/IPackedPixel.cs b/src/ImageProcessorCore/Colors/PackedPixel/IPackedPixel.cs new file mode 100644 index 0000000000..6a54855ca4 --- /dev/null +++ b/src/ImageProcessorCore/Colors/PackedPixel/IPackedPixel.cs @@ -0,0 +1,16 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageProcessorCore +{ + /// + /// An interface that represents a packed pixel type. + /// + /// The packed format. uint, long, float. + public interface IPackedPixel : IPackedVector + where TPacked : struct + { + } +} diff --git a/src/ImageProcessorCore/Filters/Alpha.cs b/src/ImageProcessorCore/Filters/Alpha.cs index 4cbb6342f7..2591fc10ae 100644 --- a/src/ImageProcessorCore/Filters/Alpha.cs +++ b/src/ImageProcessorCore/Filters/Alpha.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The new opacity of the image. Must be between 0 and 100. /// The . public static Image Alpha(this Image source, int percent) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Alpha(source, percent, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image Alpha(this Image source, int percent, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new AlphaProcessor(percent)); diff --git a/src/ImageProcessorCore/Filters/BackgroundColor.cs b/src/ImageProcessorCore/Filters/BackgroundColor.cs index 5a1b39d5f0..b3a64473ed 100644 --- a/src/ImageProcessorCore/Filters/BackgroundColor.cs +++ b/src/ImageProcessorCore/Filters/BackgroundColor.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The color to set as the background. /// The . public static Image BackgroundColor(this Image source, TColor color) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(source.Bounds, new BackgroundColorProcessor(color)); diff --git a/src/ImageProcessorCore/Filters/BinaryThreshold.cs b/src/ImageProcessorCore/Filters/BinaryThreshold.cs index 40538fb2a5..5d90eccc9d 100644 --- a/src/ImageProcessorCore/Filters/BinaryThreshold.cs +++ b/src/ImageProcessorCore/Filters/BinaryThreshold.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The threshold to apply binerization of the image. Must be between 0 and 1. /// The . public static Image BinaryThreshold(this Image source, float threshold) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return BinaryThreshold(source, threshold, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image BinaryThreshold(this Image source, float threshold, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new BinaryThresholdProcessor(threshold)); diff --git a/src/ImageProcessorCore/Filters/BlackWhite.cs b/src/ImageProcessorCore/Filters/BlackWhite.cs index 6cd0e86cde..606a4c6561 100644 --- a/src/ImageProcessorCore/Filters/BlackWhite.cs +++ b/src/ImageProcessorCore/Filters/BlackWhite.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image BlackWhite(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return BlackWhite(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image BlackWhite(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new BlackWhiteProcessor()); diff --git a/src/ImageProcessorCore/Filters/Blend.cs b/src/ImageProcessorCore/Filters/Blend.cs index 6161bf1640..ac9501f3f4 100644 --- a/src/ImageProcessorCore/Filters/Blend.cs +++ b/src/ImageProcessorCore/Filters/Blend.cs @@ -22,7 +22,7 @@ namespace ImageProcessorCore /// The opacity of the image image to blend. Must be between 0 and 100. /// The . public static Image Blend(this Image source, ImageBase image, int percent = 50) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Blend(source, image, percent, source.Bounds); @@ -41,7 +41,7 @@ namespace ImageProcessorCore /// /// The . public static Image Blend(this Image source, ImageBase image, int percent, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new BlendProcessor(image, percent)); diff --git a/src/ImageProcessorCore/Filters/Brightness.cs b/src/ImageProcessorCore/Filters/Brightness.cs index 47b59067e6..6bfe6448a8 100644 --- a/src/ImageProcessorCore/Filters/Brightness.cs +++ b/src/ImageProcessorCore/Filters/Brightness.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The new brightness of the image. Must be between -100 and 100. /// The . public static Image Brightness(this Image source, int amount) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Brightness(source, amount, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image Brightness(this Image source, int amount, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new BrightnessProcessor(amount)); diff --git a/src/ImageProcessorCore/Filters/ColorBlindness.cs b/src/ImageProcessorCore/Filters/ColorBlindness.cs index cb7759b465..9f5bc47a5e 100644 --- a/src/ImageProcessorCore/Filters/ColorBlindness.cs +++ b/src/ImageProcessorCore/Filters/ColorBlindness.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The type of color blindness simulator to apply. /// The . public static Image ColorBlindness(this Image source, ColorBlindness colorBlindness) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return ColorBlindness(source, colorBlindness, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image ColorBlindness(this Image source, ColorBlindness colorBlindness, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { IImageFilter processor; diff --git a/src/ImageProcessorCore/Filters/Contrast.cs b/src/ImageProcessorCore/Filters/Contrast.cs index 1f4d047465..92e1dbe28e 100644 --- a/src/ImageProcessorCore/Filters/Contrast.cs +++ b/src/ImageProcessorCore/Filters/Contrast.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The new contrast of the image. Must be between -100 and 100. /// The . public static Image Contrast(this Image source, int amount) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Contrast(source, amount, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image Contrast(this Image source, int amount, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new ContrastProcessor(amount)); diff --git a/src/ImageProcessorCore/Filters/Glow.cs b/src/ImageProcessorCore/Filters/Glow.cs index 1e973bbf99..383fc0b5df 100644 --- a/src/ImageProcessorCore/Filters/Glow.cs +++ b/src/ImageProcessorCore/Filters/Glow.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Glow(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Glow(source, default(TColor), source.Bounds.Width * .5F, source.Bounds); @@ -35,7 +35,7 @@ namespace ImageProcessorCore /// The color to set as the glow. /// The . public static Image Glow(this Image source, TColor color) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Glow(source, color, source.Bounds.Width * .5F, source.Bounds); @@ -50,7 +50,7 @@ namespace ImageProcessorCore /// The the radius. /// The . public static Image Glow(this Image source, float radius) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Glow(source, default(TColor), radius, source.Bounds); @@ -67,7 +67,7 @@ namespace ImageProcessorCore /// /// The . public static Image Glow(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Glow(source, default(TColor), 0, rectangle); @@ -86,7 +86,7 @@ namespace ImageProcessorCore /// /// The . public static Image Glow(this Image source, TColor color, float radius, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { GlowProcessor processor = new GlowProcessor { Radius = radius, }; diff --git a/src/ImageProcessorCore/Filters/Grayscale.cs b/src/ImageProcessorCore/Filters/Grayscale.cs index f496c3da87..d054386031 100644 --- a/src/ImageProcessorCore/Filters/Grayscale.cs +++ b/src/ImageProcessorCore/Filters/Grayscale.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The formula to apply to perform the operation. /// The . public static Image Grayscale(this Image source, GrayscaleMode mode = GrayscaleMode.Bt709) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Grayscale(source, source.Bounds, mode); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// The formula to apply to perform the operation. /// The . public static Image Grayscale(this Image source, Rectangle rectangle, GrayscaleMode mode = GrayscaleMode.Bt709) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { IImageFilter processor = mode == GrayscaleMode.Bt709 diff --git a/src/ImageProcessorCore/Filters/Hue.cs b/src/ImageProcessorCore/Filters/Hue.cs index 18e3a8a1a8..3bc331d248 100644 --- a/src/ImageProcessorCore/Filters/Hue.cs +++ b/src/ImageProcessorCore/Filters/Hue.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The angle in degrees to adjust the image. /// The . public static Image Hue(this Image source, float degrees) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Hue(source, degrees, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image Hue(this Image source, float degrees, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new HueProcessor(degrees)); diff --git a/src/ImageProcessorCore/Filters/Invert.cs b/src/ImageProcessorCore/Filters/Invert.cs index b2132da6fe..764d127f3e 100644 --- a/src/ImageProcessorCore/Filters/Invert.cs +++ b/src/ImageProcessorCore/Filters/Invert.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Invert(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Invert(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image Invert(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new InvertProcessor()); diff --git a/src/ImageProcessorCore/Filters/Kodachrome.cs b/src/ImageProcessorCore/Filters/Kodachrome.cs index 32eb6dd9df..2bd061fed4 100644 --- a/src/ImageProcessorCore/Filters/Kodachrome.cs +++ b/src/ImageProcessorCore/Filters/Kodachrome.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Kodachrome(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Kodachrome(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image Kodachrome(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new KodachromeProcessor()); diff --git a/src/ImageProcessorCore/Filters/Lomograph.cs b/src/ImageProcessorCore/Filters/Lomograph.cs index dc5443bd24..2c12d88002 100644 --- a/src/ImageProcessorCore/Filters/Lomograph.cs +++ b/src/ImageProcessorCore/Filters/Lomograph.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Lomograph(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Lomograph(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image Lomograph(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new LomographProcessor()); diff --git a/src/ImageProcessorCore/Filters/Polaroid.cs b/src/ImageProcessorCore/Filters/Polaroid.cs index 0801f85b7e..840b7812cb 100644 --- a/src/ImageProcessorCore/Filters/Polaroid.cs +++ b/src/ImageProcessorCore/Filters/Polaroid.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Polaroid(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Polaroid(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image Polaroid(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new PolaroidProcessor()); diff --git a/src/ImageProcessorCore/Filters/Saturation.cs b/src/ImageProcessorCore/Filters/Saturation.cs index 6158be7fcc..e6934b1a2f 100644 --- a/src/ImageProcessorCore/Filters/Saturation.cs +++ b/src/ImageProcessorCore/Filters/Saturation.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The new saturation of the image. Must be between -100 and 100. /// The . public static Image Saturation(this Image source, int amount) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Saturation(source, amount, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image Saturation(this Image source, int amount, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new SaturationProcessor(amount)); diff --git a/src/ImageProcessorCore/Filters/Sepia.cs b/src/ImageProcessorCore/Filters/Sepia.cs index 5102f0772a..06d83e3631 100644 --- a/src/ImageProcessorCore/Filters/Sepia.cs +++ b/src/ImageProcessorCore/Filters/Sepia.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Sepia(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Sepia(source, source.Bounds); @@ -37,7 +37,7 @@ namespace ImageProcessorCore /// /// The . public static Image Sepia(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new SepiaProcessor()); diff --git a/src/ImageProcessorCore/Filters/Vignette.cs b/src/ImageProcessorCore/Filters/Vignette.cs index bb0f058e90..37a56cee46 100644 --- a/src/ImageProcessorCore/Filters/Vignette.cs +++ b/src/ImageProcessorCore/Filters/Vignette.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image Vignette(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Vignette(source, default(TColor), source.Bounds.Width * .5F, source.Bounds.Height * .5F, source.Bounds); @@ -35,7 +35,7 @@ namespace ImageProcessorCore /// The color to set as the vignette. /// The . public static Image Vignette(this Image source, TColor color) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Vignette(source, color, source.Bounds.Width * .5F, source.Bounds.Height * .5F, source.Bounds); @@ -51,7 +51,7 @@ namespace ImageProcessorCore /// The the y-radius. /// The . public static Image Vignette(this Image source, float radiusX, float radiusY) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Vignette(source, default(TColor), radiusX, radiusY, source.Bounds); @@ -68,7 +68,7 @@ namespace ImageProcessorCore /// /// The . public static Image Vignette(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Vignette(source, default(TColor), 0, 0, rectangle); @@ -88,7 +88,7 @@ namespace ImageProcessorCore /// /// The . public static Image Vignette(this Image source, TColor color, float radiusX, float radiusY, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { VignetteProcessor processor = new VignetteProcessor { RadiusX = radiusX, RadiusY = radiusY }; diff --git a/src/ImageProcessorCore/Formats/Bmp/BmpDecoder.cs b/src/ImageProcessorCore/Formats/Bmp/BmpDecoder.cs index 2f24845549..d6b1ea3e6c 100644 --- a/src/ImageProcessorCore/Formats/Bmp/BmpDecoder.cs +++ b/src/ImageProcessorCore/Formats/Bmp/BmpDecoder.cs @@ -71,7 +71,7 @@ namespace ImageProcessorCore.Formats /// public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.NotNull(image, "image"); diff --git a/src/ImageProcessorCore/Formats/Bmp/BmpDecoderCore.cs b/src/ImageProcessorCore/Formats/Bmp/BmpDecoderCore.cs index 3afc2c75d4..31c3317aba 100644 --- a/src/ImageProcessorCore/Formats/Bmp/BmpDecoderCore.cs +++ b/src/ImageProcessorCore/Formats/Bmp/BmpDecoderCore.cs @@ -61,7 +61,7 @@ namespace ImageProcessorCore.Formats /// is null. /// public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { this.currentStream = stream; diff --git a/src/ImageProcessorCore/Formats/Bmp/BmpEncoder.cs b/src/ImageProcessorCore/Formats/Bmp/BmpEncoder.cs index 9b19644198..5ab6e6f169 100644 --- a/src/ImageProcessorCore/Formats/Bmp/BmpEncoder.cs +++ b/src/ImageProcessorCore/Formats/Bmp/BmpEncoder.cs @@ -44,7 +44,7 @@ namespace ImageProcessorCore.Formats /// public void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { BmpEncoderCore encoder = new BmpEncoderCore(); diff --git a/src/ImageProcessorCore/Formats/Gif/GifDecoder.cs b/src/ImageProcessorCore/Formats/Gif/GifDecoder.cs index 874dc694f8..f74f79625b 100644 --- a/src/ImageProcessorCore/Formats/Gif/GifDecoder.cs +++ b/src/ImageProcessorCore/Formats/Gif/GifDecoder.cs @@ -56,7 +56,7 @@ namespace ImageProcessorCore.Formats /// public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { new GifDecoderCore().Decode(image, stream); diff --git a/src/ImageProcessorCore/Formats/Gif/GifDecoderCore.cs b/src/ImageProcessorCore/Formats/Gif/GifDecoderCore.cs index a587a7df30..69cf8924f2 100644 --- a/src/ImageProcessorCore/Formats/Gif/GifDecoderCore.cs +++ b/src/ImageProcessorCore/Formats/Gif/GifDecoderCore.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Formats /// The pixel format. /// The packed format. uint, long, float. internal class GifDecoderCore - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Formats/Gif/GifEncoder.cs b/src/ImageProcessorCore/Formats/Gif/GifEncoder.cs index 4b36c116f7..46b09de827 100644 --- a/src/ImageProcessorCore/Formats/Gif/GifEncoder.cs +++ b/src/ImageProcessorCore/Formats/Gif/GifEncoder.cs @@ -48,7 +48,7 @@ namespace ImageProcessorCore.Formats /// public void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { GifEncoderCore encoder = new GifEncoderCore diff --git a/src/ImageProcessorCore/Formats/Gif/GifEncoderCore.cs b/src/ImageProcessorCore/Formats/Gif/GifEncoderCore.cs index 507cc45278..e37ca3a1b3 100644 --- a/src/ImageProcessorCore/Formats/Gif/GifEncoderCore.cs +++ b/src/ImageProcessorCore/Formats/Gif/GifEncoderCore.cs @@ -47,7 +47,7 @@ namespace ImageProcessorCore.Formats /// The to encode from. /// The to encode the image data to. public void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.NotNull(image, nameof(image)); @@ -116,7 +116,7 @@ namespace ImageProcessorCore.Formats /// The . /// private static int GetTransparentIndex(QuantizedImage quantized) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { // Find the lowest alpha value and make it the transparent index. @@ -153,7 +153,7 @@ namespace ImageProcessorCore.Formats /// The writer to write to the stream with. /// The transparency index to set the default background index to. private void WriteLogicalScreenDescriptor(Image image, EndianBinaryWriter writer, int tranparencyIndex) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { GifLogicalScreenDescriptor descriptor = new GifLogicalScreenDescriptor @@ -302,7 +302,7 @@ namespace ImageProcessorCore.Formats /// The to encode. /// The writer to write to the stream with. private void WriteColorTable(QuantizedImage image, EndianBinaryWriter writer) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { // Grab the palette and write it to the stream. @@ -337,7 +337,7 @@ namespace ImageProcessorCore.Formats /// The containing indexed pixels. /// The stream to write to. private void WriteImageData(QuantizedImage image, EndianBinaryWriter writer) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { byte[] indexedPixels = image.Pixels; diff --git a/src/ImageProcessorCore/Formats/IImageDecoder.cs b/src/ImageProcessorCore/Formats/IImageDecoder.cs index da1b819194..c3bc5325c5 100644 --- a/src/ImageProcessorCore/Formats/IImageDecoder.cs +++ b/src/ImageProcessorCore/Formats/IImageDecoder.cs @@ -46,7 +46,7 @@ namespace ImageProcessorCore.Formats /// The to decode to. /// The containing image data. void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct; } } diff --git a/src/ImageProcessorCore/Formats/IImageEncoder.cs b/src/ImageProcessorCore/Formats/IImageEncoder.cs index 445b7f645c..35ae38c2b3 100644 --- a/src/ImageProcessorCore/Formats/IImageEncoder.cs +++ b/src/ImageProcessorCore/Formats/IImageEncoder.cs @@ -45,7 +45,7 @@ namespace ImageProcessorCore.Formats /// The to encode from. /// The to encode the image data to. void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct; } } diff --git a/src/ImageProcessorCore/Formats/Jpg/JpegDecoder.cs b/src/ImageProcessorCore/Formats/Jpg/JpegDecoder.cs index 5f6869ddfd..6e6db9b9c4 100644 --- a/src/ImageProcessorCore/Formats/Jpg/JpegDecoder.cs +++ b/src/ImageProcessorCore/Formats/Jpg/JpegDecoder.cs @@ -77,7 +77,7 @@ namespace ImageProcessorCore.Formats /// public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.NotNull(image, "image"); diff --git a/src/ImageProcessorCore/Formats/Jpg/JpegDecoderCore.cs.REMOVED.git-id b/src/ImageProcessorCore/Formats/Jpg/JpegDecoderCore.cs.REMOVED.git-id index 10a9e18c2d..d835bfb6d7 100644 --- a/src/ImageProcessorCore/Formats/Jpg/JpegDecoderCore.cs.REMOVED.git-id +++ b/src/ImageProcessorCore/Formats/Jpg/JpegDecoderCore.cs.REMOVED.git-id @@ -1 +1 @@ -4b157cb3b1a798514be3c1b13c1ed4294bf9d6f1 \ No newline at end of file +8dbd88f93229d332f2ca8e61d85d4ac6a66773ef \ No newline at end of file diff --git a/src/ImageProcessorCore/Formats/Jpg/JpegEncoder.cs b/src/ImageProcessorCore/Formats/Jpg/JpegEncoder.cs index 83f87acb72..32fa38d832 100644 --- a/src/ImageProcessorCore/Formats/Jpg/JpegEncoder.cs +++ b/src/ImageProcessorCore/Formats/Jpg/JpegEncoder.cs @@ -79,7 +79,7 @@ namespace ImageProcessorCore.Formats /// public void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { JpegEncoderCore encode = new JpegEncoderCore(); diff --git a/src/ImageProcessorCore/Formats/Jpg/JpegEncoderCore.cs b/src/ImageProcessorCore/Formats/Jpg/JpegEncoderCore.cs index 57ab791817..d61c0ee9d9 100644 --- a/src/ImageProcessorCore/Formats/Jpg/JpegEncoderCore.cs +++ b/src/ImageProcessorCore/Formats/Jpg/JpegEncoderCore.cs @@ -431,7 +431,7 @@ namespace ImageProcessorCore.Formats // Encode writes the Image m to w in JPEG 4:2:0 baseline format with the given // options. Default parameters are used if a nil *Options is passed. public void Encode(Image image, Stream stream, int quality, JpegSubsample sample) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.NotNull(image, nameof(image)); @@ -571,7 +571,7 @@ namespace ImageProcessorCore.Formats } private void WriteProfiles(Image image) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { WriteProfile(image.ExifProfile); diff --git a/src/ImageProcessorCore/Formats/Png/PngDecoder.cs b/src/ImageProcessorCore/Formats/Png/PngDecoder.cs index 0fad54dd7a..dbb872c182 100644 --- a/src/ImageProcessorCore/Formats/Png/PngDecoder.cs +++ b/src/ImageProcessorCore/Formats/Png/PngDecoder.cs @@ -82,7 +82,7 @@ namespace ImageProcessorCore.Formats /// The to decode to. /// The containing image data. public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { new PngDecoderCore().Decode(image, stream); diff --git a/src/ImageProcessorCore/Formats/Png/PngDecoderCore.cs b/src/ImageProcessorCore/Formats/Png/PngDecoderCore.cs index d68bec5118..68037f9470 100644 --- a/src/ImageProcessorCore/Formats/Png/PngDecoderCore.cs +++ b/src/ImageProcessorCore/Formats/Png/PngDecoderCore.cs @@ -91,7 +91,7 @@ namespace ImageProcessorCore.Formats /// Thrown if the image is larger than the maximum allowable size. /// public void Decode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Image currentImage = image; @@ -163,7 +163,7 @@ namespace ImageProcessorCore.Formats /// The image to read to. /// The data containing physical data. private void ReadPhysicalChunk(Image image, byte[] data) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Array.Reverse(data, 0, 4); @@ -450,7 +450,7 @@ namespace ImageProcessorCore.Formats /// The image to decode to. /// The containing data. private void ReadTextChunk(Image image, byte[] data) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { int zeroIndex = 0; diff --git a/src/ImageProcessorCore/Formats/Png/PngEncoder.cs b/src/ImageProcessorCore/Formats/Png/PngEncoder.cs index de0dbac289..8da7f5f325 100644 --- a/src/ImageProcessorCore/Formats/Png/PngEncoder.cs +++ b/src/ImageProcessorCore/Formats/Png/PngEncoder.cs @@ -73,7 +73,7 @@ namespace ImageProcessorCore.Formats /// public void Encode(Image image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { PngEncoderCore encoder = new PngEncoderCore diff --git a/src/ImageProcessorCore/Formats/Png/PngEncoderCore.cs b/src/ImageProcessorCore/Formats/Png/PngEncoderCore.cs index 9f21ba47a9..04ee5c3aef 100644 --- a/src/ImageProcessorCore/Formats/Png/PngEncoderCore.cs +++ b/src/ImageProcessorCore/Formats/Png/PngEncoderCore.cs @@ -96,7 +96,7 @@ namespace ImageProcessorCore.Formats /// The to encode from. /// The to encode the image data to. public void Encode(ImageBase image, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.NotNull(image, nameof(image)); @@ -233,7 +233,7 @@ namespace ImageProcessorCore.Formats /// The containing image data. /// The . private void CollectIndexedBytes(ImageBase image, Stream stream, PngHeader header) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { // Quatize the image and get the pixels @@ -483,7 +483,7 @@ namespace ImageProcessorCore.Formats /// The image to encode. /// The private QuantizedImage WritePaletteChunk(Stream stream, PngHeader header, ImageBase image) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { if (this.Quality > 256) @@ -553,7 +553,7 @@ namespace ImageProcessorCore.Formats /// The containing image data. /// The image base. private void WritePhysicalChunk(Stream stream, ImageBase imageBase) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Image image = imageBase as Image; diff --git a/src/ImageProcessorCore/Image/Image.cs b/src/ImageProcessorCore/Image/Image.cs index 178cae82a8..c3edeb264e 100644 --- a/src/ImageProcessorCore/Image/Image.cs +++ b/src/ImageProcessorCore/Image/Image.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The packed format. uint, long, float. [DebuggerDisplay("Image: {Width}x{Height}")] public class Image : ImageBase - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Image/ImageIOExtensions.cs b/src/ImageProcessorCore/Image/ImageIOExtensions.cs index 85d9fe3fe5..0124a7c24d 100644 --- a/src/ImageProcessorCore/Image/ImageIOExtensions.cs +++ b/src/ImageProcessorCore/Image/ImageIOExtensions.cs @@ -26,7 +26,7 @@ namespace ImageProcessorCore /// The . /// public static Image SaveAsBmp(this Image source, Stream stream) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct => source.Save(stream, new BmpEncoder()); @@ -45,7 +45,8 @@ namespace ImageProcessorCore /// The . /// public static Image SaveAsPng(this Image source, Stream stream, int quality = int.MaxValue) - where TColor : IPackedVector where TPacked : struct + where TColor : IPackedPixel + where TPacked : struct => source.Save(stream, new PngEncoder { Quality = quality }); /// @@ -61,7 +62,7 @@ namespace ImageProcessorCore /// The . /// public static Image SaveAsJpeg(this Image source, Stream stream, int quality = 75) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct => source.Save(stream, new JpegEncoder { Quality = quality }); @@ -78,7 +79,7 @@ namespace ImageProcessorCore /// The . /// public static Image SaveAsGif(this Image source, Stream stream, int quality = 256) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct => source.Save(stream, new GifEncoder { Quality = quality }); } diff --git a/src/ImageProcessorCore/Image/ImageProcessingExtensions.cs b/src/ImageProcessorCore/Image/ImageProcessingExtensions.cs index e3a0dbd182..93993a12c0 100644 --- a/src/ImageProcessorCore/Image/ImageProcessingExtensions.cs +++ b/src/ImageProcessorCore/Image/ImageProcessingExtensions.cs @@ -23,7 +23,7 @@ namespace ImageProcessorCore /// The processor to apply to the image. /// The . internal static Image Process(this Image source, IImageFilter processor) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Process(source, source.Bounds, processor); @@ -42,7 +42,7 @@ namespace ImageProcessorCore /// The processors to apply to the image. /// The . internal static Image Process(this Image source, Rectangle sourceRectangle, IImageFilter processor) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return PerformAction(source, (sourceImage) => processor.Apply(sourceImage, sourceRectangle)); @@ -58,7 +58,7 @@ namespace ImageProcessorCore /// The processor to apply to the image. /// The . internal static Image Process(this Image source, IImageSampler processor) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Process(source, source.Bounds, processor); @@ -77,7 +77,7 @@ namespace ImageProcessorCore /// The processors to apply to the image. /// The . internal static Image Process(this Image source, Rectangle sourceRectangle, IImageSampler processor) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return PerformAction(source, true, (sourceImage, targetImage) => processor.Apply(targetImage, sourceImage, sourceRectangle)); @@ -97,7 +97,7 @@ namespace ImageProcessorCore /// The processor to apply to the image. /// The . internal static Image Process(this Image source, int width, int height, IImageSampler sampler) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Process(source, width, height, source.Bounds, default(Rectangle), sampler); @@ -124,7 +124,7 @@ namespace ImageProcessorCore /// The processor to apply to the image. /// The . internal static Image Process(this Image source, int width, int height, Rectangle sourceRectangle, Rectangle targetRectangle, IImageSampler sampler) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return PerformAction(source, false, (sourceImage, targetImage) => sampler.Apply(targetImage, sourceImage, width, height, targetRectangle, sourceRectangle)); @@ -139,7 +139,7 @@ namespace ImageProcessorCore /// The to perform against the image. /// The . private static Image PerformAction(Image source, Action> action) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { action(source); @@ -162,7 +162,7 @@ namespace ImageProcessorCore /// The to perform against the image. /// The . private static Image PerformAction(Image source, bool clone, Action, ImageBase> action) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Image transformedImage = clone diff --git a/src/ImageProcessorCore/Profiles/Exif/ExifProfile.cs b/src/ImageProcessorCore/Profiles/Exif/ExifProfile.cs index 2c1509fd0e..d4f3fa56f6 100644 --- a/src/ImageProcessorCore/Profiles/Exif/ExifProfile.cs +++ b/src/ImageProcessorCore/Profiles/Exif/ExifProfile.cs @@ -118,7 +118,7 @@ namespace ImageProcessorCore /// The pixel format. /// The packed format. uint, long, float. public Image CreateThumbnail() - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { this.InitializeValues(); diff --git a/src/ImageProcessorCore/Quantizers/IQuantizer.cs b/src/ImageProcessorCore/Quantizers/IQuantizer.cs index 1ad7ad9c38..85d1172ae3 100644 --- a/src/ImageProcessorCore/Quantizers/IQuantizer.cs +++ b/src/ImageProcessorCore/Quantizers/IQuantizer.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public interface IQuantizer : IQuantizer - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Quantizers/Octree/OctreeQuantizer.cs b/src/ImageProcessorCore/Quantizers/Octree/OctreeQuantizer.cs index d6eeb535ff..7f4713b656 100644 --- a/src/ImageProcessorCore/Quantizers/Octree/OctreeQuantizer.cs +++ b/src/ImageProcessorCore/Quantizers/Octree/OctreeQuantizer.cs @@ -15,7 +15,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public sealed class OctreeQuantizer : Quantizer - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Quantizers/Octree/Quantizer.cs b/src/ImageProcessorCore/Quantizers/Octree/Quantizer.cs index 1354808798..fc87811596 100644 --- a/src/ImageProcessorCore/Quantizers/Octree/Quantizer.cs +++ b/src/ImageProcessorCore/Quantizers/Octree/Quantizer.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public abstract class Quantizer : IQuantizer - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Quantizers/Palette/PaletteQuantizer.cs b/src/ImageProcessorCore/Quantizers/Palette/PaletteQuantizer.cs index 07a4098463..7382cd9b4a 100644 --- a/src/ImageProcessorCore/Quantizers/Palette/PaletteQuantizer.cs +++ b/src/ImageProcessorCore/Quantizers/Palette/PaletteQuantizer.cs @@ -17,7 +17,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public class PaletteQuantizer : Quantizer - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Quantizers/Quantize.cs b/src/ImageProcessorCore/Quantizers/Quantize.cs index c6b72430c5..908dc7c04b 100644 --- a/src/ImageProcessorCore/Quantizers/Quantize.cs +++ b/src/ImageProcessorCore/Quantizers/Quantize.cs @@ -22,7 +22,7 @@ namespace ImageProcessorCore /// The maximum number of colors to return. Defaults to 256. /// The . public static Image Quantize(this Image source, Quantization mode = Quantization.Octree, int maxColors = 256) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { IQuantizer quantizer; @@ -54,7 +54,7 @@ namespace ImageProcessorCore /// The maximum number of colors to return. /// The . public static Image Quantize(this Image source, IQuantizer quantizer, int maxColors) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { QuantizedImage quantizedImage = quantizer.Quantize(source, maxColors); diff --git a/src/ImageProcessorCore/Quantizers/QuantizedImage.cs b/src/ImageProcessorCore/Quantizers/QuantizedImage.cs index 79b618a964..c68bdce72b 100644 --- a/src/ImageProcessorCore/Quantizers/QuantizedImage.cs +++ b/src/ImageProcessorCore/Quantizers/QuantizedImage.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public class QuantizedImage - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Quantizers/Wu/WuQuantizer.cs b/src/ImageProcessorCore/Quantizers/Wu/WuQuantizer.cs index 15e9cc5056..ad5201aa18 100644 --- a/src/ImageProcessorCore/Quantizers/Wu/WuQuantizer.cs +++ b/src/ImageProcessorCore/Quantizers/Wu/WuQuantizer.cs @@ -35,7 +35,7 @@ namespace ImageProcessorCore.Quantizers /// The pixel format. /// The packed format. uint, long, float. public sealed class WuQuantizer : IQuantizer - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/AutoOrient.cs b/src/ImageProcessorCore/Samplers/AutoOrient.cs index 26fe192d8c..97e41f577b 100644 --- a/src/ImageProcessorCore/Samplers/AutoOrient.cs +++ b/src/ImageProcessorCore/Samplers/AutoOrient.cs @@ -18,7 +18,7 @@ namespace ImageProcessorCore /// The image to auto rotate. /// The public static Image AutoOrient(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Orientation orientation = GetExifOrientation(source); @@ -63,7 +63,7 @@ namespace ImageProcessorCore /// The image to auto rotate. /// The private static Orientation GetExifOrientation(Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { if (source.ExifProfile == null) diff --git a/src/ImageProcessorCore/Samplers/BoxBlur.cs b/src/ImageProcessorCore/Samplers/BoxBlur.cs index 53442d841e..cbe444b9e9 100644 --- a/src/ImageProcessorCore/Samplers/BoxBlur.cs +++ b/src/ImageProcessorCore/Samplers/BoxBlur.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The 'radius' value representing the size of the area to sample. /// The . public static Image BoxBlur(this Image source, int radius = 7) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return BoxBlur(source, radius, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image BoxBlur(this Image source, int radius, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new BoxBlurProcessor(radius)); diff --git a/src/ImageProcessorCore/Samplers/Crop.cs b/src/ImageProcessorCore/Samplers/Crop.cs index ccb07ee5c0..b014fe7bca 100644 --- a/src/ImageProcessorCore/Samplers/Crop.cs +++ b/src/ImageProcessorCore/Samplers/Crop.cs @@ -22,7 +22,7 @@ namespace ImageProcessorCore /// The target image height. /// The public static Image Crop(this Image source, int width, int height) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Crop(source, width, height, source.Bounds); @@ -45,7 +45,7 @@ namespace ImageProcessorCore /// /// The public static Image Crop(this Image source, int width, int height, Rectangle sourceRectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.MustBeGreaterThan(width, 0, nameof(width)); diff --git a/src/ImageProcessorCore/Samplers/DetectEdges.cs b/src/ImageProcessorCore/Samplers/DetectEdges.cs index 3282b0bb3d..b933f32429 100644 --- a/src/ImageProcessorCore/Samplers/DetectEdges.cs +++ b/src/ImageProcessorCore/Samplers/DetectEdges.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The image this method extends. /// The . public static Image DetectEdges(this Image source) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return DetectEdges(source, source.Bounds, new SobelProcessor { Grayscale = true }); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image DetectEdges(this Image source, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return DetectEdges(source, rectangle, new SobelProcessor { Grayscale = true }); @@ -55,7 +55,7 @@ namespace ImageProcessorCore /// Whether to convert the image to Grayscale first. Defaults to true. /// The . public static Image DetectEdges(this Image source, EdgeDetection filter, bool grayscale = true) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return DetectEdges(source, filter, source.Bounds, grayscale); @@ -74,7 +74,7 @@ namespace ImageProcessorCore /// Whether to convert the image to Grayscale first. Defaults to true. /// The . public static Image DetectEdges(this Image source, EdgeDetection filter, Rectangle rectangle, bool grayscale = true) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { IEdgeDetectorFilter processor; @@ -134,7 +134,7 @@ namespace ImageProcessorCore /// The filter for detecting edges. /// The . public static Image DetectEdges(this Image source, IEdgeDetectorFilter filter) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return DetectEdges(source, source.Bounds, filter); @@ -152,7 +152,7 @@ namespace ImageProcessorCore /// The filter for detecting edges. /// The . public static Image DetectEdges(this Image source, Rectangle rectangle, IEdgeDetectorFilter filter) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, filter); diff --git a/src/ImageProcessorCore/Samplers/EntropyCrop.cs b/src/ImageProcessorCore/Samplers/EntropyCrop.cs index 04e84cfafb..463052c720 100644 --- a/src/ImageProcessorCore/Samplers/EntropyCrop.cs +++ b/src/ImageProcessorCore/Samplers/EntropyCrop.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The threshold for entropic density. /// The public static Image EntropyCrop(this Image source, float threshold = .5f) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { EntropyCropProcessor processor = new EntropyCropProcessor(threshold); diff --git a/src/ImageProcessorCore/Samplers/Flip.cs b/src/ImageProcessorCore/Samplers/Flip.cs index ebf880f2b3..133cc07f43 100644 --- a/src/ImageProcessorCore/Samplers/Flip.cs +++ b/src/ImageProcessorCore/Samplers/Flip.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The to perform the flip. /// The public static Image Flip(this Image source, FlipType flipType) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { FlipProcessor processor = new FlipProcessor(flipType); diff --git a/src/ImageProcessorCore/Samplers/GuassianBlur.cs b/src/ImageProcessorCore/Samplers/GuassianBlur.cs index 18ff96e479..52c8b08aa0 100644 --- a/src/ImageProcessorCore/Samplers/GuassianBlur.cs +++ b/src/ImageProcessorCore/Samplers/GuassianBlur.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The 'sigma' value representing the weight of the blur. /// The . public static Image GuassianBlur(this Image source, float sigma = 3f) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return GuassianBlur(source, sigma, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image GuassianBlur(this Image source, float sigma, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new GuassianBlurProcessor(sigma)); diff --git a/src/ImageProcessorCore/Samplers/GuassianSharpen.cs b/src/ImageProcessorCore/Samplers/GuassianSharpen.cs index 219c19ecc5..23ad813fc0 100644 --- a/src/ImageProcessorCore/Samplers/GuassianSharpen.cs +++ b/src/ImageProcessorCore/Samplers/GuassianSharpen.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The 'sigma' value representing the weight of the blur. /// The . public static Image GuassianSharpen(this Image source, float sigma = 3f) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return GuassianSharpen(source, sigma, source.Bounds); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// /// The . public static Image GuassianSharpen(this Image source, float sigma, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Process(rectangle, new GuassianSharpenProcessor(sigma)); diff --git a/src/ImageProcessorCore/Samplers/OilPainting.cs b/src/ImageProcessorCore/Samplers/OilPainting.cs index 07b4144f4c..54ec595199 100644 --- a/src/ImageProcessorCore/Samplers/OilPainting.cs +++ b/src/ImageProcessorCore/Samplers/OilPainting.cs @@ -24,7 +24,7 @@ namespace ImageProcessorCore /// The number of neighbouring pixels used in calculating each individual pixel value. /// The . public static Image OilPaint(this Image source, int levels = 10, int brushSize = 15) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return OilPaint(source, levels, brushSize, source.Bounds); @@ -43,7 +43,7 @@ namespace ImageProcessorCore /// /// The . public static Image OilPaint(this Image source, int levels, int brushSize, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { Guard.MustBeGreaterThan(levels, 0, nameof(levels)); diff --git a/src/ImageProcessorCore/Samplers/Pad.cs b/src/ImageProcessorCore/Samplers/Pad.cs index 3c91a2f89d..ebbb5bbb76 100644 --- a/src/ImageProcessorCore/Samplers/Pad.cs +++ b/src/ImageProcessorCore/Samplers/Pad.cs @@ -20,7 +20,7 @@ namespace ImageProcessorCore /// The new height. /// The . public static Image Pad(this Image source, int width, int height) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { ResizeOptions options = new ResizeOptions diff --git a/src/ImageProcessorCore/Samplers/Pixelate.cs b/src/ImageProcessorCore/Samplers/Pixelate.cs index 5d39728b3c..b19940e7fc 100644 --- a/src/ImageProcessorCore/Samplers/Pixelate.cs +++ b/src/ImageProcessorCore/Samplers/Pixelate.cs @@ -23,7 +23,7 @@ namespace ImageProcessorCore /// The size of the pixels. /// The . public static Image Pixelate(this Image source, int size = 4) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Pixelate(source, size, source.Bounds); @@ -41,7 +41,7 @@ namespace ImageProcessorCore /// /// The . public static Image Pixelate(this Image source, int size, Rectangle rectangle) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { if (size <= 0 || size > source.Height || size > source.Width) diff --git a/src/ImageProcessorCore/Samplers/Processors/CompandingResizeProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/CompandingResizeProcessor.cs index a6c07cffbc..7172d5f46b 100644 --- a/src/ImageProcessorCore/Samplers/Processors/CompandingResizeProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/CompandingResizeProcessor.cs @@ -16,7 +16,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class CompandingResizeProcessor : ResamplingWeightedProcessor - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/BoxBlurProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/BoxBlurProcessor.cs index a67dbe647a..495d5968ad 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/BoxBlurProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/BoxBlurProcessor.cs @@ -11,7 +11,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class BoxBlurProcessor : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/Convolution2PassFilter.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/Convolution2PassFilter.cs index 48a5927fe4..5ab7805fe9 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/Convolution2PassFilter.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/Convolution2PassFilter.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class Convolution2PassFilter : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/EdgeDetectorCompassFilter.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/EdgeDetectorCompassFilter.cs index 2e3aeb365a..f1a7060961 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/EdgeDetectorCompassFilter.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/EdgeDetectorCompassFilter.cs @@ -15,7 +15,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public abstract class EdgeDetectorCompassFilter : ImageSampler, IEdgeDetectorFilter - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/KirschProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/KirschProcessor.cs index 529592a012..1402747aa3 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/KirschProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/KirschProcessor.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Processors /// The packed format. uint, long, float. [SuppressMessage("ReSharper", "StaticMemberInGenericType", Justification = "We want to use only one instance of each array field for each generic type.")] public class KirschProcessor : EdgeDetectorCompassFilter - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs index 2bb8044991..779387998d 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Processors /// The packed format. uint, long, float. [SuppressMessage("ReSharper", "StaticMemberInGenericType", Justification = "We want to use only one instance of each array field for each generic type.")] public class RobinsonProcessor : EdgeDetectorCompassFilter - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianBlurProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianBlurProcessor.cs index d8a1b0907b..0fb41cc54f 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianBlurProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianBlurProcessor.cs @@ -13,7 +13,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class GuassianBlurProcessor : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianSharpenProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianSharpenProcessor.cs index 6d0382ee9d..a85a0bdc9a 100644 --- a/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianSharpenProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/Convolution/GuassianSharpenProcessor.cs @@ -13,7 +13,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class GuassianSharpenProcessor : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/EntropyCropProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/EntropyCropProcessor.cs index 88a31e9e18..cb2b88eb9c 100644 --- a/src/ImageProcessorCore/Samplers/Processors/EntropyCropProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/EntropyCropProcessor.cs @@ -15,7 +15,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class EntropyCropProcessor : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/FlipProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/FlipProcessor.cs index 4c4df43e67..ae322db417 100644 --- a/src/ImageProcessorCore/Samplers/Processors/FlipProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/FlipProcessor.cs @@ -14,7 +14,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class FlipProcessor : ImageSampler - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs index 74d61983fd..575d85229a 100644 --- a/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/ResizeProcessor.cs @@ -18,7 +18,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class ResizeProcessor : ResamplingWeightedProcessor - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs b/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs index 5b6cee4cc0..afb2c23f56 100644 --- a/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs +++ b/src/ImageProcessorCore/Samplers/Processors/RotateProcessor.cs @@ -16,7 +16,7 @@ namespace ImageProcessorCore.Processors /// The pixel format. /// The packed format. uint, long, float. public class RotateProcessor : Matrix3x2Processor - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { /// diff --git a/src/ImageProcessorCore/Samplers/Resize.cs b/src/ImageProcessorCore/Samplers/Resize.cs index 6fd2a7b099..2273c80189 100644 --- a/src/ImageProcessorCore/Samplers/Resize.cs +++ b/src/ImageProcessorCore/Samplers/Resize.cs @@ -22,7 +22,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width within the resize options will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, ResizeOptions options) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { // Ensure size is populated across both dimensions. @@ -52,7 +52,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, int width, int height) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Resize(source, width, height, new BicubicResampler(), false); @@ -70,7 +70,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, int width, int height, bool compand) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Resize(source, width, height, new BicubicResampler(), compand); @@ -88,7 +88,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, int width, int height, IResampler sampler) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Resize(source, width, height, sampler, false); @@ -107,7 +107,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, int width, int height, IResampler sampler, bool compand) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Resize(source, width, height, sampler, source.Bounds, new Rectangle(0, 0, width, height), compand); @@ -133,7 +133,7 @@ namespace ImageProcessorCore /// The /// Passing zero for one of height or width will automatically preserve the aspect ratio of the original image public static Image Resize(this Image source, int width, int height, IResampler sampler, Rectangle sourceRectangle, Rectangle targetRectangle, bool compand = false) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { if (width == 0 && height > 0) diff --git a/src/ImageProcessorCore/Samplers/Rotate.cs b/src/ImageProcessorCore/Samplers/Rotate.cs index 2b0f4dbcec..51b81cbd4b 100644 --- a/src/ImageProcessorCore/Samplers/Rotate.cs +++ b/src/ImageProcessorCore/Samplers/Rotate.cs @@ -21,7 +21,7 @@ namespace ImageProcessorCore /// The angle in degrees to perform the rotation. /// The public static Image Rotate(this Image source, float degrees) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Rotate(source, degrees, true); @@ -36,7 +36,7 @@ namespace ImageProcessorCore /// The to perform the rotation. /// The public static Image Rotate(this Image source, RotateType rotateType) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Rotate(source, (float)rotateType, false); @@ -52,7 +52,7 @@ namespace ImageProcessorCore /// Whether to expand the image to fit the rotated result. /// The public static Image Rotate(this Image source, float degrees, bool expand) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { RotateProcessor processor = new RotateProcessor { Angle = degrees, Expand = expand }; diff --git a/src/ImageProcessorCore/Samplers/RotateFlip.cs b/src/ImageProcessorCore/Samplers/RotateFlip.cs index 34af54a98e..a20cea5289 100644 --- a/src/ImageProcessorCore/Samplers/RotateFlip.cs +++ b/src/ImageProcessorCore/Samplers/RotateFlip.cs @@ -19,7 +19,7 @@ namespace ImageProcessorCore /// The to perform the flip. /// The public static Image RotateFlip(this Image source, RotateType rotateType, FlipType flipType) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return source.Rotate(rotateType).Flip(flipType); diff --git a/src/ImageProcessorCore/Samplers/Skew.cs b/src/ImageProcessorCore/Samplers/Skew.cs index 0a76f07dde..7692cbcd22 100644 --- a/src/ImageProcessorCore/Samplers/Skew.cs +++ b/src/ImageProcessorCore/Samplers/Skew.cs @@ -22,7 +22,7 @@ namespace ImageProcessorCore /// The angle in degrees to perform the rotation along the y-axis. /// The public static Image Skew(this Image source, float degreesX, float degreesY) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { return Skew(source, degreesX, degreesY, true); @@ -39,7 +39,7 @@ namespace ImageProcessorCore /// Whether to expand the image to fit the skewed result. /// The public static Image Skew(this Image source, float degreesX, float degreesY, bool expand) - where TColor : IPackedVector + where TColor : IPackedPixel where TPacked : struct { SkewProcessor processor = new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand };