diff --git a/src/ImageSharp.Drawing/Processing/EllipticGradientBrush.cs b/src/ImageSharp.Drawing/Processing/EllipticGradientBrush.cs
index 4a8ce44db..91da332a1 100644
--- a/src/ImageSharp.Drawing/Processing/EllipticGradientBrush.cs
+++ b/src/ImageSharp.Drawing/Processing/EllipticGradientBrush.cs
@@ -14,7 +14,7 @@ namespace SixLabors.ImageSharp.Processing
/// a point on the longest extension of the ellipse and
/// the ratio between longest and shortest extension.
///
- public sealed class EllipticGradientBrush : GradientBrushBase
+ public sealed class EllipticGradientBrush : GradientBrush
{
private readonly PointF center;
@@ -22,7 +22,7 @@ namespace SixLabors.ImageSharp.Processing
private readonly float axisRatio;
- ///
+ ///
/// The center of the elliptical gradient and 0 for the color stops.
/// The end point of the reference axis of the ellipse.
///
@@ -60,7 +60,7 @@ namespace SixLabors.ImageSharp.Processing
this.RepetitionMode);
///
- private sealed class RadialGradientBrushApplicator : GradientBrushApplicatorBase
+ private sealed class RadialGradientBrushApplicator : GradientBrushApplicator
where TPixel : struct, IPixel
{
private readonly PointF center;
@@ -149,8 +149,7 @@ namespace SixLabors.ImageSharp.Processing
{
var vA = a - junction;
var vB = b - junction;
- return (float)(Math.Atan2(vB.Y, vB.X)
- - Math.Atan2(vA.Y, vA.X));
+ return MathF.Atan2(vB.Y, vB.X) - MathF.Atan2(vA.Y, vA.X);
}
private float DistanceBetween(
@@ -162,7 +161,7 @@ namespace SixLabors.ImageSharp.Processing
float dY = p1.Y - p2.Y;
float dYsquared = dY * dY;
- return (float)Math.Sqrt(dXsquared + dYsquared);
+ return MathF.Sqrt(dXsquared + dYsquared);
}
}
}
diff --git a/src/ImageSharp.Drawing/Processing/GradientBrushBase.cs b/src/ImageSharp.Drawing/Processing/GradientBrush.cs
similarity index 96%
rename from src/ImageSharp.Drawing/Processing/GradientBrushBase.cs
rename to src/ImageSharp.Drawing/Processing/GradientBrush.cs
index 39dbcb61a..9826748c4 100644
--- a/src/ImageSharp.Drawing/Processing/GradientBrushBase.cs
+++ b/src/ImageSharp.Drawing/Processing/GradientBrush.cs
@@ -13,12 +13,12 @@ namespace SixLabors.ImageSharp.Processing
///
/// Base class for Gradient brushes
///
- public abstract class GradientBrushBase : IBrush
+ public abstract class GradientBrush : IBrush
{
///
/// Defines how the colors are repeated beyond the interval [0..1]
/// The gradient colors.
- protected GradientBrushBase(
+ protected GradientBrush(
GradientRepetitionMode repetitionMode,
params ColorStop[] colorStops)
{
@@ -46,7 +46,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// Base class for gradient brush applicators
///
- internal abstract class GradientBrushApplicatorBase : BrushApplicator
+ internal abstract class GradientBrushApplicator : BrushApplicator
where TPixel : struct, IPixel
{
private static readonly TPixel Transparent = Color.Transparent.ToPixel();
@@ -56,13 +56,13 @@ namespace SixLabors.ImageSharp.Processing
private readonly GradientRepetitionMode repetitionMode;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The target.
/// The options.
/// An array of color stops sorted by their position.
/// Defines if and how the gradient should be repeated.
- protected GradientBrushApplicatorBase(
+ protected GradientBrushApplicator(
ImageFrame target,
GraphicsOptions options,
ColorStop[] colorStops,
diff --git a/src/ImageSharp.Drawing/Processing/LinearGradientBrush.cs b/src/ImageSharp.Drawing/Processing/LinearGradientBrush.cs
index 6eeadee5d..bb99eeb26 100644
--- a/src/ImageSharp.Drawing/Processing/LinearGradientBrush.cs
+++ b/src/ImageSharp.Drawing/Processing/LinearGradientBrush.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.Processing
/// Supported right now:
/// - a set of colors in relative distances to each other.
///
- public sealed class LinearGradientBrush : GradientBrushBase
+ public sealed class LinearGradientBrush : GradientBrush
{
private readonly PointF p1;
@@ -53,7 +53,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The linear gradient brush applicator.
///
- private sealed class LinearGradientBrushApplicator : GradientBrushApplicatorBase
+ private sealed class LinearGradientBrushApplicator : GradientBrushApplicator
where TPixel : struct, IPixel
{
private readonly PointF start;
@@ -121,7 +121,7 @@ namespace SixLabors.ImageSharp.Processing
// some helpers:
this.alongsSquared = (this.alongX * this.alongX) + (this.alongY * this.alongY);
- this.length = (float)Math.Sqrt(this.alongsSquared);
+ this.length = MathF.Sqrt(this.alongsSquared);
}
protected override float PositionOnGradient(float x, float y)
@@ -145,7 +145,7 @@ namespace SixLabors.ImageSharp.Processing
float y4 = y + (k * this.alongX);
// get distance from (x4,y4) to start
- float distance = (float)Math.Sqrt(Math.Pow(x4 - this.start.X, 2) + Math.Pow(y4 - this.start.Y, 2));
+ float distance = MathF.Sqrt(MathF.Pow(x4 - this.start.X, 2) + MathF.Pow(y4 - this.start.Y, 2));
// get and return ratio
float ratio = distance / this.length;
diff --git a/src/ImageSharp.Drawing/Processing/RadialGradientBrush.cs b/src/ImageSharp.Drawing/Processing/RadialGradientBrush.cs
index aac0f2e7b..f4d2dd81f 100644
--- a/src/ImageSharp.Drawing/Processing/RadialGradientBrush.cs
+++ b/src/ImageSharp.Drawing/Processing/RadialGradientBrush.cs
@@ -11,13 +11,13 @@ namespace SixLabors.ImageSharp.Processing
///
/// A Circular Gradient Brush, defined by center point and radius.
///
- public sealed class RadialGradientBrush : GradientBrushBase
+ public sealed class RadialGradientBrush : GradientBrush
{
private readonly PointF center;
private readonly float radius;
- ///
+ ///
/// The center of the circular gradient and 0 for the color stops.
/// The radius of the circular gradient and 1 for the color stops.
/// Defines how the colors in the gradient are repeated.
@@ -47,7 +47,7 @@ namespace SixLabors.ImageSharp.Processing
this.RepetitionMode);
///
- private sealed class RadialGradientBrushApplicator : GradientBrushApplicatorBase
+ private sealed class RadialGradientBrushApplicator : GradientBrushApplicator
where TPixel : struct, IPixel
{
private readonly PointF center;
@@ -90,7 +90,7 @@ namespace SixLabors.ImageSharp.Processing
/// the position on the color gradient.
protected override float PositionOnGradient(float x, float y)
{
- float distance = (float)Math.Sqrt(Math.Pow(this.center.X - x, 2) + Math.Pow(this.center.Y - y, 2));
+ float distance = MathF.Sqrt(MathF.Pow(this.center.X - x, 2) + MathF.Pow(this.center.Y - y, 2));
return distance / this.radius;
}
diff --git a/src/ImageSharp/Color/Color.cs b/src/ImageSharp/Color/Color.cs
index 0d94ac18c..2547e6d87 100644
--- a/src/ImageSharp/Color/Color.cs
+++ b/src/ImageSharp/Color/Color.cs
@@ -104,18 +104,11 @@ namespace SixLabors.ImageSharp
/// in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax.
///
/// Returns a that represents the color defined by the provided RGBA hex string.
+ [MethodImpl(InliningOptions.ShortMethod)]
public static Color FromHex(string hex)
{
- Guard.NotNullOrWhiteSpace(hex, nameof(hex));
-
- hex = ToRgbaHex(hex);
-
- if (hex is null || !uint.TryParse(hex, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out uint packedValue))
- {
- throw new ArgumentException("Hexadecimal string is not in the correct format.", nameof(hex));
- }
+ Rgba32 rgba = Rgba32.FromHex(hex);
- var rgba = new Rgba32(BinaryPrimitives.ReverseEndianness(packedValue));
return new Color(rgba);
}
@@ -189,42 +182,5 @@ namespace SixLabors.ImageSharp
ReadOnlySpan rgba64Span = MemoryMarshal.Cast(source);
PixelOperations.Instance.FromRgba64(Configuration.Default, rgba64Span, destination);
}
-
- ///
- /// Converts the specified hex value to an rrggbbaa hex value.
- ///
- /// The hex value to convert.
- ///
- /// A rrggbbaa hex value.
- ///
- private static string ToRgbaHex(string hex)
- {
- if (hex[0] == '#')
- {
- hex = hex.Substring(1);
- }
-
- if (hex.Length == 8)
- {
- return hex;
- }
-
- if (hex.Length == 6)
- {
- return hex + "FF";
- }
-
- if (hex.Length < 3 || hex.Length > 4)
- {
- return null;
- }
-
- char r = hex[0];
- char g = hex[1];
- char b = hex[2];
- char a = hex.Length == 3 ? 'F' : hex[3];
-
- return new string(new[] { r, r, g, g, b, b, a, a });
- }
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
index 2cc8437bb..21d576fb4 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
@@ -465,7 +465,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// The source working space
/// The
- private LinearRgbToCieXyzConverter GetLinearRgbToCieXyzConverter(RgbWorkingSpaceBase workingSpace)
+ private LinearRgbToCieXyzConverter GetLinearRgbToCieXyzConverter(RgbWorkingSpace workingSpace)
{
if (this.linearRgbToCieXyzConverter?.SourceWorkingSpace.Equals(workingSpace) == true)
{
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
index fe6a57f7a..bcbd64c77 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
@@ -18,7 +18,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
private readonly CieXyz targetLuvWhitePoint;
private readonly CieXyz targetLabWhitePoint;
private readonly CieXyz targetHunterLabWhitePoint;
- private readonly RgbWorkingSpaceBase targetRgbWorkingSpace;
+ private readonly RgbWorkingSpace targetRgbWorkingSpace;
private readonly IChromaticAdaptation chromaticAdaptation;
private readonly bool performChromaticAdaptation;
private readonly CieXyzAndLmsConverter cieXyzAndLmsConverter;
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs
index fcd031e26..65fe79994 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs
@@ -40,7 +40,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
/// Gets or sets the target working space used *when creating* RGB colors. (RGB colors on the input already contain the working space information)
/// Defaults to: .
///
- public RgbWorkingSpaceBase TargetRgbWorkingSpace { get; set; } = Rgb.DefaultWorkingSpace;
+ public RgbWorkingSpace TargetRgbWorkingSpace { get; set; } = Rgb.DefaultWorkingSpace;
///
/// Gets or sets the chromatic adaptation method used. When null, no adaptation will be performed.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/CieXyzToLinearRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/CieXyzToLinearRgbConverter.cs
index f166e4c14..6497e3060 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/CieXyzToLinearRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/CieXyzToLinearRgbConverter.cs
@@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The target working space.
- public CieXyzToLinearRgbConverter(RgbWorkingSpaceBase workingSpace)
+ public CieXyzToLinearRgbConverter(RgbWorkingSpace workingSpace)
{
this.TargetWorkingSpace = workingSpace;
@@ -38,7 +38,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Gets the target working space.
///
- public RgbWorkingSpaceBase TargetWorkingSpace { get; }
+ public RgbWorkingSpace TargetWorkingSpace { get; }
///
/// Performs the conversion from the input to an instance of type.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbAndCieXyzConverterBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbAndCieXyzConverterBase.cs
index a93773262..bdf451cd3 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbAndCieXyzConverterBase.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbAndCieXyzConverterBase.cs
@@ -15,7 +15,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The Rgb working space.
/// The based on the chromaticity and working space.
- public static Matrix4x4 GetRgbToCieXyzMatrix(RgbWorkingSpaceBase workingSpace)
+ public static Matrix4x4 GetRgbToCieXyzMatrix(RgbWorkingSpace workingSpace)
{
DebugGuard.NotNull(workingSpace, nameof(workingSpace));
RgbPrimariesChromaticityCoordinates chromaticity = workingSpace.ChromaticityCoordinates;
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbToCieXyzConverter.cs
index 1030ac981..21a96071a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Converters/LinearRgbToCieXyzConverter.cs
@@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Initializes a new instance of the class.
///
/// The target working space.
- public LinearRgbToCieXyzConverter(RgbWorkingSpaceBase workingSpace)
+ public LinearRgbToCieXyzConverter(RgbWorkingSpace workingSpace)
{
this.SourceWorkingSpace = workingSpace;
this.conversionMatrix = GetRgbToCieXyzMatrix(workingSpace);
@@ -34,7 +34,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Gets the source working space
///
- public RgbWorkingSpaceBase SourceWorkingSpace { get; }
+ public RgbWorkingSpace SourceWorkingSpace { get; }
///
/// Performs the conversion from the input to an instance of type.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
index 4c69133e0..e28f3f1a4 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
@@ -7,7 +7,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
///
/// Represents the chromaticity coordinates of RGB primaries.
- /// One of the specifiers of .
+ /// One of the specifiers of .
///
public readonly struct RgbPrimariesChromaticityCoordinates : IEquatable
{
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/GammaWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/GammaWorkingSpace.cs
index c45dea317..6caca54cd 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/GammaWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/GammaWorkingSpace.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The gamma working space.
///
- public sealed class GammaWorkingSpace : RgbWorkingSpaceBase
+ public sealed class GammaWorkingSpace : RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/LWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/LWorkingSpace.cs
index 16617ea24..a2eb42ad0 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/LWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/LWorkingSpace.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// L* working space.
///
- public sealed class LWorkingSpace : RgbWorkingSpaceBase
+ public sealed class LWorkingSpace : RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec2020WorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec2020WorkingSpace.cs
index 9ba1ff881..a794b3dda 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec2020WorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec2020WorkingSpace.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Rec. 2020 (ITU-R Recommendation BT.2020F) working space.
///
- public sealed class Rec2020WorkingSpace : RgbWorkingSpaceBase
+ public sealed class Rec2020WorkingSpace : RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec709WorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec709WorkingSpace.cs
index 88623e958..ffa9699bc 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec709WorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/Rec709WorkingSpace.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Rec. 709 (ITU-R Recommendation BT.709) working space.
///
- public sealed class Rec709WorkingSpace : RgbWorkingSpaceBase
+ public sealed class Rec709WorkingSpace : RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpaceBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpace.cs
similarity index 91%
rename from src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpaceBase.cs
rename to src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpace.cs
index 6051f5286..a97ae22b1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpaceBase.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/RgbWorkingSpace.cs
@@ -6,16 +6,16 @@ using System;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{
///
- /// Base class for all implementations of .
+ /// Base class for all implementations of .
///
- public abstract class RgbWorkingSpaceBase
+ public abstract class RgbWorkingSpace
{
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The reference white point.
/// The chromaticity of the rgb primaries.
- protected RgbWorkingSpaceBase(CieXyz referenceWhite, RgbPrimariesChromaticityCoordinates chromaticityCoordinates)
+ protected RgbWorkingSpace(CieXyz referenceWhite, RgbPrimariesChromaticityCoordinates chromaticityCoordinates)
{
this.WhitePoint = referenceWhite;
this.ChromaticityCoordinates = chromaticityCoordinates;
@@ -66,7 +66,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return true;
}
- if (obj is RgbWorkingSpaceBase other)
+ if (obj is RgbWorkingSpace other)
{
return this.WhitePoint.Equals(other.WhitePoint)
&& this.ChromaticityCoordinates.Equals(other.ChromaticityCoordinates);
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/SRgbWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/SRgbWorkingSpace.cs
index b44db0681..c3d850251 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/SRgbWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/WorkingSpaces/SRgbWorkingSpace.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// The sRgb working space.
///
- public sealed class SRgbWorkingSpace : RgbWorkingSpaceBase
+ public sealed class SRgbWorkingSpace : RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/LinearRgb.cs b/src/ImageSharp/ColorSpaces/LinearRgb.cs
index 46b227596..7ef50e9c4 100644
--- a/src/ImageSharp/ColorSpaces/LinearRgb.cs
+++ b/src/ImageSharp/ColorSpaces/LinearRgb.cs
@@ -9,7 +9,7 @@ using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation;
namespace SixLabors.ImageSharp.ColorSpaces
{
///
- /// Represents an linear Rgb color with specified working space
+ /// Represents an linear Rgb color with specified working space
///
public readonly struct LinearRgb : IEquatable
{
@@ -19,7 +19,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// The default LinearRgb working space.
///
- public static readonly RgbWorkingSpaceBase DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
+ public static readonly RgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
///
/// Gets the red component.
@@ -42,7 +42,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Gets the LinearRgb color space
///
- public readonly RgbWorkingSpaceBase WorkingSpace;
+ public readonly RgbWorkingSpace WorkingSpace;
///
/// Initializes a new instance of the struct.
@@ -64,7 +64,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The blue component ranging between 0 and 1.
/// The rgb working space.
[MethodImpl(InliningOptions.ShortMethod)]
- public LinearRgb(float r, float g, float b, RgbWorkingSpaceBase workingSpace)
+ public LinearRgb(float r, float g, float b, RgbWorkingSpace workingSpace)
: this(new Vector3(r, g, b), workingSpace)
{
}
@@ -85,7 +85,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The vector representing the r, g, b components.
/// The LinearRgb working space.
[MethodImpl(InliningOptions.ShortMethod)]
- public LinearRgb(Vector3 vector, RgbWorkingSpaceBase workingSpace)
+ public LinearRgb(Vector3 vector, RgbWorkingSpace workingSpace)
{
// Clamp to 0-1 range.
vector = Vector3.Clamp(vector, Min, Max);
diff --git a/src/ImageSharp/ColorSpaces/Rgb.cs b/src/ImageSharp/ColorSpaces/Rgb.cs
index 5cb89a293..bb71deba3 100644
--- a/src/ImageSharp/ColorSpaces/Rgb.cs
+++ b/src/ImageSharp/ColorSpaces/Rgb.cs
@@ -10,14 +10,14 @@ using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.ColorSpaces
{
///
- /// Represents an RGB color with specified working space.
+ /// Represents an RGB color with specified working space.
///
public readonly struct Rgb : IEquatable
{
///
/// The default rgb working space.
///
- public static readonly RgbWorkingSpaceBase DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
+ public static readonly RgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
private static readonly Vector3 Min = Vector3.Zero;
private static readonly Vector3 Max = Vector3.One;
@@ -43,7 +43,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Gets the Rgb color space
///
- public readonly RgbWorkingSpaceBase WorkingSpace;
+ public readonly RgbWorkingSpace WorkingSpace;
///
/// Initializes a new instance of the struct.
@@ -65,7 +65,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The blue component ranging between 0 and 1.
/// The rgb working space.
[MethodImpl(InliningOptions.ShortMethod)]
- public Rgb(float r, float g, float b, RgbWorkingSpaceBase workingSpace)
+ public Rgb(float r, float g, float b, RgbWorkingSpace workingSpace)
: this(new Vector3(r, g, b), workingSpace)
{
}
@@ -86,7 +86,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The vector representing the r, g, b components.
/// The rgb working space.
[MethodImpl(InliningOptions.ShortMethod)]
- public Rgb(Vector3 vector, RgbWorkingSpaceBase workingSpace)
+ public Rgb(Vector3 vector, RgbWorkingSpace workingSpace)
{
vector = Vector3.Clamp(vector, Min, Max);
this.R = vector.X;
diff --git a/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs b/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
index 7ddcae7ce..3f40fa4f5 100644
--- a/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
+++ b/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
@@ -19,97 +19,97 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Uses proper companding function, according to:
///
///
- public static readonly RgbWorkingSpaceBase SRgb = new SRgbWorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.3000F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
+ public static readonly RgbWorkingSpace SRgb = new SRgbWorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.3000F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
///
/// Simplified sRgb working space (uses gamma companding instead of ).
/// See also .
///
- public static readonly RgbWorkingSpaceBase SRgbSimplified = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.3000F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
+ public static readonly RgbWorkingSpace SRgbSimplified = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.3000F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
///
/// Rec. 709 (ITU-R Recommendation BT.709) working space.
///
- public static readonly RgbWorkingSpaceBase Rec709 = new Rec709WorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.64F, 0.33F), new CieXyChromaticityCoordinates(0.30F, 0.60F), new CieXyChromaticityCoordinates(0.15F, 0.06F)));
+ public static readonly RgbWorkingSpace Rec709 = new Rec709WorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.64F, 0.33F), new CieXyChromaticityCoordinates(0.30F, 0.60F), new CieXyChromaticityCoordinates(0.15F, 0.06F)));
///
/// Rec. 2020 (ITU-R Recommendation BT.2020F) working space.
///
- public static readonly RgbWorkingSpaceBase Rec2020 = new Rec2020WorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.708F, 0.292F), new CieXyChromaticityCoordinates(0.170F, 0.797F), new CieXyChromaticityCoordinates(0.131F, 0.046F)));
+ public static readonly RgbWorkingSpace Rec2020 = new Rec2020WorkingSpace(Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.708F, 0.292F), new CieXyChromaticityCoordinates(0.170F, 0.797F), new CieXyChromaticityCoordinates(0.131F, 0.046F)));
///
/// ECI Rgb v2 working space.
///
- public static readonly RgbWorkingSpaceBase ECIRgbv2 = new LWorkingSpace(Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6700F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1400F, 0.0800F)));
+ public static readonly RgbWorkingSpace ECIRgbv2 = new LWorkingSpace(Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6700F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1400F, 0.0800F)));
///
/// Adobe Rgb (1998) working space.
///
- public static readonly RgbWorkingSpaceBase AdobeRgb1998 = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
+ public static readonly RgbWorkingSpace AdobeRgb1998 = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
///
/// Apple sRgb working space.
///
- public static readonly RgbWorkingSpaceBase ApplesRgb = new GammaWorkingSpace(1.8F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6250F, 0.3400F), new CieXyChromaticityCoordinates(0.2800F, 0.5950F), new CieXyChromaticityCoordinates(0.1550F, 0.0700F)));
+ public static readonly RgbWorkingSpace ApplesRgb = new GammaWorkingSpace(1.8F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6250F, 0.3400F), new CieXyChromaticityCoordinates(0.2800F, 0.5950F), new CieXyChromaticityCoordinates(0.1550F, 0.0700F)));
///
/// Best Rgb working space.
///
- public static readonly RgbWorkingSpaceBase BestRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7347F, 0.2653F), new CieXyChromaticityCoordinates(0.2150F, 0.7750F), new CieXyChromaticityCoordinates(0.1300F, 0.0350F)));
+ public static readonly RgbWorkingSpace BestRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7347F, 0.2653F), new CieXyChromaticityCoordinates(0.2150F, 0.7750F), new CieXyChromaticityCoordinates(0.1300F, 0.0350F)));
///
/// Beta Rgb working space.
///
- public static readonly RgbWorkingSpaceBase BetaRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6888F, 0.3112F), new CieXyChromaticityCoordinates(0.1986F, 0.7551F), new CieXyChromaticityCoordinates(0.1265F, 0.0352F)));
+ public static readonly RgbWorkingSpace BetaRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6888F, 0.3112F), new CieXyChromaticityCoordinates(0.1986F, 0.7551F), new CieXyChromaticityCoordinates(0.1265F, 0.0352F)));
///
/// Bruce Rgb working space.
///
- public static readonly RgbWorkingSpaceBase BruceRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2800F, 0.6500F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
+ public static readonly RgbWorkingSpace BruceRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2800F, 0.6500F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
///
/// CIE Rgb working space.
///
- public static readonly RgbWorkingSpaceBase CIERgb = new GammaWorkingSpace(2.2F, Illuminants.E, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7350F, 0.2650F), new CieXyChromaticityCoordinates(0.2740F, 0.7170F), new CieXyChromaticityCoordinates(0.1670F, 0.0090F)));
+ public static readonly RgbWorkingSpace CIERgb = new GammaWorkingSpace(2.2F, Illuminants.E, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7350F, 0.2650F), new CieXyChromaticityCoordinates(0.2740F, 0.7170F), new CieXyChromaticityCoordinates(0.1670F, 0.0090F)));
///
/// ColorMatch Rgb working space.
///
- public static readonly RgbWorkingSpaceBase ColorMatchRgb = new GammaWorkingSpace(1.8F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6300F, 0.3400F), new CieXyChromaticityCoordinates(0.2950F, 0.6050F), new CieXyChromaticityCoordinates(0.1500F, 0.0750F)));
+ public static readonly RgbWorkingSpace ColorMatchRgb = new GammaWorkingSpace(1.8F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6300F, 0.3400F), new CieXyChromaticityCoordinates(0.2950F, 0.6050F), new CieXyChromaticityCoordinates(0.1500F, 0.0750F)));
///
/// Don Rgb 4 working space.
///
- public static readonly RgbWorkingSpaceBase DonRgb4 = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6960F, 0.3000F), new CieXyChromaticityCoordinates(0.2150F, 0.7650F), new CieXyChromaticityCoordinates(0.1300F, 0.0350F)));
+ public static readonly RgbWorkingSpace DonRgb4 = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6960F, 0.3000F), new CieXyChromaticityCoordinates(0.2150F, 0.7650F), new CieXyChromaticityCoordinates(0.1300F, 0.0350F)));
///
/// Ekta Space PS5 working space.
///
- public static readonly RgbWorkingSpaceBase EktaSpacePS5 = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6950F, 0.3050F), new CieXyChromaticityCoordinates(0.2600F, 0.7000F), new CieXyChromaticityCoordinates(0.1100F, 0.0050F)));
+ public static readonly RgbWorkingSpace EktaSpacePS5 = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6950F, 0.3050F), new CieXyChromaticityCoordinates(0.2600F, 0.7000F), new CieXyChromaticityCoordinates(0.1100F, 0.0050F)));
///
/// NTSC Rgb working space.
///
- public static readonly RgbWorkingSpaceBase NTSCRgb = new GammaWorkingSpace(2.2F, Illuminants.C, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6700F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1400F, 0.0800F)));
+ public static readonly RgbWorkingSpace NTSCRgb = new GammaWorkingSpace(2.2F, Illuminants.C, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6700F, 0.3300F), new CieXyChromaticityCoordinates(0.2100F, 0.7100F), new CieXyChromaticityCoordinates(0.1400F, 0.0800F)));
///
/// PAL/SECAM Rgb working space.
///
- public static readonly RgbWorkingSpaceBase PALSECAMRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2900F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
+ public static readonly RgbWorkingSpace PALSECAMRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6400F, 0.3300F), new CieXyChromaticityCoordinates(0.2900F, 0.6000F), new CieXyChromaticityCoordinates(0.1500F, 0.0600F)));
///
/// ProPhoto Rgb working space.
///
- public static readonly RgbWorkingSpaceBase ProPhotoRgb = new GammaWorkingSpace(1.8F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7347F, 0.2653F), new CieXyChromaticityCoordinates(0.1596F, 0.8404F), new CieXyChromaticityCoordinates(0.0366F, 0.0001F)));
+ public static readonly RgbWorkingSpace ProPhotoRgb = new GammaWorkingSpace(1.8F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7347F, 0.2653F), new CieXyChromaticityCoordinates(0.1596F, 0.8404F), new CieXyChromaticityCoordinates(0.0366F, 0.0001F)));
///
/// SMPTE-C Rgb working space.
///
- public static readonly RgbWorkingSpaceBase SMPTECRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6300F, 0.3400F), new CieXyChromaticityCoordinates(0.3100F, 0.5950F), new CieXyChromaticityCoordinates(0.1550F, 0.0700F)));
+ public static readonly RgbWorkingSpace SMPTECRgb = new GammaWorkingSpace(2.2F, Illuminants.D65, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.6300F, 0.3400F), new CieXyChromaticityCoordinates(0.3100F, 0.5950F), new CieXyChromaticityCoordinates(0.1550F, 0.0700F)));
///
/// Wide Gamut Rgb working space.
///
- public static readonly RgbWorkingSpaceBase WideGamutRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7350F, 0.2650F), new CieXyChromaticityCoordinates(0.1150F, 0.8260F), new CieXyChromaticityCoordinates(0.1570F, 0.0180F)));
+ public static readonly RgbWorkingSpace WideGamutRgb = new GammaWorkingSpace(2.2F, Illuminants.D50, new RgbPrimariesChromaticityCoordinates(new CieXyChromaticityCoordinates(0.7350F, 0.2650F), new CieXyChromaticityCoordinates(0.1150F, 0.8260F), new CieXyChromaticityCoordinates(0.1570F, 0.0180F)));
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/Formats/PngFilterMethod.cs b/src/ImageSharp/Formats/Png/PngFilterMethod.cs
similarity index 97%
rename from src/ImageSharp/Formats/PngFilterMethod.cs
rename to src/ImageSharp/Formats/Png/PngFilterMethod.cs
index 73c405625..e16c1234f 100644
--- a/src/ImageSharp/Formats/PngFilterMethod.cs
+++ b/src/ImageSharp/Formats/Png/PngFilterMethod.cs
@@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
-namespace SixLabors.ImageSharp.Formats
+namespace SixLabors.ImageSharp.Formats.Png
{
///
/// Provides enumeration of available PNG filter methods.
diff --git a/src/ImageSharp/PixelFormats/ColorBuilder{TPixel}.cs b/src/ImageSharp/PixelFormats/ColorBuilder{TPixel}.cs
deleted file mode 100644
index c1fb13e4d..000000000
--- a/src/ImageSharp/PixelFormats/ColorBuilder{TPixel}.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Buffers.Binary;
-using System.Globalization;
-
-namespace SixLabors.ImageSharp.PixelFormats
-{
- ///
- /// A set of named colors mapped to the provided Color space.
- ///
- /// The type of the color.
- public static class ColorBuilder
- where TPixel : struct, IPixel
- {
- ///
- /// Creates a new representation from the string representing a color.
- ///
- ///
- /// The hexadecimal representation of the combined color components arranged
- /// in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax.
- ///
- /// Returns a that represents the color defined by the provided RGBA hex string.
- public static TPixel FromHex(string hex)
- {
- Guard.NotNullOrWhiteSpace(hex, nameof(hex));
-
- hex = ToRgbaHex(hex);
-
- if (hex is null || !uint.TryParse(hex, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out uint packedValue))
- {
- throw new ArgumentException("Hexadecimal string is not in the correct format.", nameof(hex));
- }
-
- TPixel result = default;
- var rgba = new Rgba32(BinaryPrimitives.ReverseEndianness(packedValue));
-
- result.FromRgba32(rgba);
- return result;
- }
-
- ///
- /// Creates a new representation from standard RGB bytes with 100% opacity.
- ///
- /// The red intensity.
- /// The green intensity.
- /// The blue intensity.
- /// Returns a that represents the color defined by the provided RGB values with 100% opacity.
- public static TPixel FromRgb(byte red, byte green, byte blue) => FromRgba(red, green, blue, 255);
-
- ///
- /// Creates a new representation from standard RGBA bytes.
- ///
- /// The red intensity.
- /// The green intensity.
- /// The blue intensity.
- /// The alpha intensity.
- /// Returns a that represents the color defined by the provided RGBA values.
- public static TPixel FromRgba(byte red, byte green, byte blue, byte alpha)
- {
- TPixel color = default;
- color.FromRgba32(new Rgba32(red, green, blue, alpha));
- return color;
- }
-
- ///
- /// Converts the specified hex value to an rrggbbaa hex value.
- ///
- /// The hex value to convert.
- ///
- /// A rrggbbaa hex value.
- ///
- private static string ToRgbaHex(string hex)
- {
- if (hex[0] == '#')
- {
- hex = hex.Substring(1);
- }
-
- if (hex.Length == 8)
- {
- return hex;
- }
-
- if (hex.Length == 6)
- {
- return hex + "FF";
- }
-
- if (hex.Length < 3 || hex.Length > 4)
- {
- return null;
- }
-
- char r = hex[0];
- char g = hex[1];
- char b = hex[2];
- char a = hex.Length == 3 ? 'F' : hex[3];
-
- return new string(new[] { r, r, g, g, b, b, a, a });
- }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/PixelFormats/NamedColors{TPixel}.cs b/src/ImageSharp/PixelFormats/NamedColors{TPixel}.cs
deleted file mode 100644
index 2138e2e2f..000000000
--- a/src/ImageSharp/PixelFormats/NamedColors{TPixel}.cs
+++ /dev/null
@@ -1,761 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace SixLabors.ImageSharp.PixelFormats
-{
- ///
- /// A set of named colors mapped to the provided color space.
- ///
- /// The type of the color.
- public static class NamedColors
- where TPixel : struct, IPixel
- {
- ///
- /// Thread-safe backing field for the constant palettes.
- ///
- private static readonly Lazy WebSafePaletteLazy = new Lazy(GetWebSafePalette, true);
- private static readonly Lazy WernerPaletteLazy = new Lazy(GetWernerPalette, true);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F0F8FF.
- ///
- public static readonly TPixel AliceBlue = ColorBuilder.FromRgba(240, 248, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FAEBD7.
- ///
- public static readonly TPixel AntiqueWhite = ColorBuilder.FromRgba(250, 235, 215, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00FFFF.
- ///
- public static readonly TPixel Aqua = ColorBuilder.FromRgba(0, 255, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #7FFFD4.
- ///
- public static readonly TPixel Aquamarine = ColorBuilder.FromRgba(127, 255, 212, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F0FFFF.
- ///
- public static readonly TPixel Azure = ColorBuilder.FromRgba(240, 255, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F5F5DC.
- ///
- public static readonly TPixel Beige = ColorBuilder.FromRgba(245, 245, 220, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFE4C4.
- ///
- public static readonly TPixel Bisque = ColorBuilder.FromRgba(255, 228, 196, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #000000.
- ///
- public static readonly TPixel Black = ColorBuilder.FromRgba(0, 0, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFEBCD.
- ///
- public static readonly TPixel BlanchedAlmond = ColorBuilder.FromRgba(255, 235, 205, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #0000FF.
- ///
- public static readonly TPixel Blue = ColorBuilder.FromRgba(0, 0, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #8A2BE2.
- ///
- public static readonly TPixel BlueViolet = ColorBuilder.FromRgba(138, 43, 226, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #A52A2A.
- ///
- public static readonly TPixel Brown = ColorBuilder.FromRgba(165, 42, 42, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DEB887.
- ///
- public static readonly TPixel BurlyWood = ColorBuilder.FromRgba(222, 184, 135, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #5F9EA0.
- ///
- public static readonly TPixel CadetBlue = ColorBuilder.FromRgba(95, 158, 160, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #7FFF00.
- ///
- public static readonly TPixel Chartreuse = ColorBuilder.FromRgba(127, 255, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #D2691E.
- ///
- public static readonly TPixel Chocolate = ColorBuilder.FromRgba(210, 105, 30, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF7F50.
- ///
- public static readonly TPixel Coral = ColorBuilder.FromRgba(255, 127, 80, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #6495ED.
- ///
- public static readonly TPixel CornflowerBlue = ColorBuilder.FromRgba(100, 149, 237, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFF8DC.
- ///
- public static readonly TPixel Cornsilk = ColorBuilder.FromRgba(255, 248, 220, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DC143C.
- ///
- public static readonly TPixel Crimson = ColorBuilder.FromRgba(220, 20, 60, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00FFFF.
- ///
- public static readonly TPixel Cyan = ColorBuilder.FromRgba(0, 255, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00008B.
- ///
- public static readonly TPixel DarkBlue = ColorBuilder.FromRgba(0, 0, 139, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #008B8B.
- ///
- public static readonly TPixel DarkCyan = ColorBuilder.FromRgba(0, 139, 139, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #B8860B.
- ///
- public static readonly TPixel DarkGoldenrod = ColorBuilder.FromRgba(184, 134, 11, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #A9A9A9.
- ///
- public static readonly TPixel DarkGray = ColorBuilder.FromRgba(169, 169, 169, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #006400.
- ///
- public static readonly TPixel DarkGreen = ColorBuilder.FromRgba(0, 100, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #BDB76B.
- ///
- public static readonly TPixel DarkKhaki = ColorBuilder.FromRgba(189, 183, 107, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #8B008B.
- ///
- public static readonly TPixel DarkMagenta = ColorBuilder.FromRgba(139, 0, 139, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #556B2F.
- ///
- public static readonly TPixel DarkOliveGreen = ColorBuilder.FromRgba(85, 107, 47, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF8C00.
- ///
- public static readonly TPixel DarkOrange = ColorBuilder.FromRgba(255, 140, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #9932CC.
- ///
- public static readonly TPixel DarkOrchid = ColorBuilder.FromRgba(153, 50, 204, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #8B0000.
- ///
- public static readonly TPixel DarkRed = ColorBuilder.FromRgba(139, 0, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #E9967A.
- ///
- public static readonly TPixel DarkSalmon = ColorBuilder.FromRgba(233, 150, 122, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #8FBC8B.
- ///
- public static readonly TPixel DarkSeaGreen = ColorBuilder.FromRgba(143, 188, 139, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #483D8B.
- ///
- public static readonly TPixel DarkSlateBlue = ColorBuilder.FromRgba(72, 61, 139, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #2F4F4F.
- ///
- public static readonly TPixel DarkSlateGray = ColorBuilder.FromRgba(47, 79, 79, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00CED1.
- ///
- public static readonly TPixel DarkTurquoise = ColorBuilder.FromRgba(0, 206, 209, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #9400D3.
- ///
- public static readonly TPixel DarkViolet = ColorBuilder.FromRgba(148, 0, 211, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF1493.
- ///
- public static readonly TPixel DeepPink = ColorBuilder.FromRgba(255, 20, 147, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00BFFF.
- ///
- public static readonly TPixel DeepSkyBlue = ColorBuilder.FromRgba(0, 191, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #696969.
- ///
- public static readonly TPixel DimGray = ColorBuilder.FromRgba(105, 105, 105, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #1E90FF.
- ///
- public static readonly TPixel DodgerBlue = ColorBuilder.FromRgba(30, 144, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #B22222.
- ///
- public static readonly TPixel Firebrick = ColorBuilder.FromRgba(178, 34, 34, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFAF0.
- ///
- public static readonly TPixel FloralWhite = ColorBuilder.FromRgba(255, 250, 240, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #228B22.
- ///
- public static readonly TPixel ForestGreen = ColorBuilder.FromRgba(34, 139, 34, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF00FF.
- ///
- public static readonly TPixel Fuchsia = ColorBuilder.FromRgba(255, 0, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DCDCDC.
- ///
- public static readonly TPixel Gainsboro = ColorBuilder.FromRgba(220, 220, 220, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F8F8FF.
- ///
- public static readonly TPixel GhostWhite = ColorBuilder.FromRgba(248, 248, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFD700.
- ///
- public static readonly TPixel Gold = ColorBuilder.FromRgba(255, 215, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DAA520.
- ///
- public static readonly TPixel Goldenrod = ColorBuilder.FromRgba(218, 165, 32, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #808080.
- ///
- public static readonly TPixel Gray = ColorBuilder.FromRgba(128, 128, 128, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #008000.
- ///
- public static readonly TPixel Green = ColorBuilder.FromRgba(0, 128, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #ADFF2F.
- ///
- public static readonly TPixel GreenYellow = ColorBuilder.FromRgba(173, 255, 47, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F0FFF0.
- ///
- public static readonly TPixel Honeydew = ColorBuilder.FromRgba(240, 255, 240, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF69B4.
- ///
- public static readonly TPixel HotPink = ColorBuilder.FromRgba(255, 105, 180, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #CD5C5C.
- ///
- public static readonly TPixel IndianRed = ColorBuilder.FromRgba(205, 92, 92, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #4B0082.
- ///
- public static readonly TPixel Indigo = ColorBuilder.FromRgba(75, 0, 130, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFFF0.
- ///
- public static readonly TPixel Ivory = ColorBuilder.FromRgba(255, 255, 240, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F0E68C.
- ///
- public static readonly TPixel Khaki = ColorBuilder.FromRgba(240, 230, 140, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #E6E6FA.
- ///
- public static readonly TPixel Lavender = ColorBuilder.FromRgba(230, 230, 250, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFF0F5.
- ///
- public static readonly TPixel LavenderBlush = ColorBuilder.FromRgba(255, 240, 245, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #7CFC00.
- ///
- public static readonly TPixel LawnGreen = ColorBuilder.FromRgba(124, 252, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFACD.
- ///
- public static readonly TPixel LemonChiffon = ColorBuilder.FromRgba(255, 250, 205, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #ADD8E6.
- ///
- public static readonly TPixel LightBlue = ColorBuilder.FromRgba(173, 216, 230, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F08080.
- ///
- public static readonly TPixel LightCoral = ColorBuilder.FromRgba(240, 128, 128, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #E0FFFF.
- ///
- public static readonly TPixel LightCyan = ColorBuilder.FromRgba(224, 255, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FAFAD2.
- ///
- public static readonly TPixel LightGoldenrodYellow = ColorBuilder.FromRgba(250, 250, 210, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #D3D3D3.
- ///
- public static readonly TPixel LightGray = ColorBuilder.FromRgba(211, 211, 211, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #90EE90.
- ///
- public static readonly TPixel LightGreen = ColorBuilder.FromRgba(144, 238, 144, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFB6C1.
- ///
- public static readonly TPixel LightPink = ColorBuilder.FromRgba(255, 182, 193, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFA07A.
- ///
- public static readonly TPixel LightSalmon = ColorBuilder.FromRgba(255, 160, 122, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #20B2AA.
- ///
- public static readonly TPixel LightSeaGreen = ColorBuilder.FromRgba(32, 178, 170, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #87CEFA.
- ///
- public static readonly TPixel LightSkyBlue = ColorBuilder.FromRgba(135, 206, 250, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #778899.
- ///
- public static readonly TPixel LightSlateGray = ColorBuilder.FromRgba(119, 136, 153, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #B0C4DE.
- ///
- public static readonly TPixel LightSteelBlue = ColorBuilder.FromRgba(176, 196, 222, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFFE0.
- ///
- public static readonly TPixel LightYellow = ColorBuilder.FromRgba(255, 255, 224, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00FF00.
- ///
- public static readonly TPixel Lime = ColorBuilder.FromRgba(0, 255, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #32CD32.
- ///
- public static readonly TPixel LimeGreen = ColorBuilder.FromRgba(50, 205, 50, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FAF0E6.
- ///
- public static readonly TPixel Linen = ColorBuilder.FromRgba(250, 240, 230, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF00FF.
- ///
- public static readonly TPixel Magenta = ColorBuilder.FromRgba(255, 0, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #800000.
- ///
- public static readonly TPixel Maroon = ColorBuilder.FromRgba(128, 0, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #66CDAA.
- ///
- public static readonly TPixel MediumAquamarine = ColorBuilder.FromRgba(102, 205, 170, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #0000CD.
- ///
- public static readonly TPixel MediumBlue = ColorBuilder.FromRgba(0, 0, 205, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #BA55D3.
- ///
- public static readonly TPixel MediumOrchid = ColorBuilder.FromRgba(186, 85, 211, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #9370DB.
- ///
- public static readonly TPixel MediumPurple = ColorBuilder.FromRgba(147, 112, 219, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #3CB371.
- ///
- public static readonly TPixel MediumSeaGreen = ColorBuilder.FromRgba(60, 179, 113, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #7B68EE.
- ///
- public static readonly TPixel MediumSlateBlue = ColorBuilder.FromRgba(123, 104, 238, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00FA9A.
- ///
- public static readonly TPixel MediumSpringGreen = ColorBuilder.FromRgba(0, 250, 154, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #48D1CC.
- ///
- public static readonly TPixel MediumTurquoise = ColorBuilder.FromRgba(72, 209, 204, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #C71585.
- ///
- public static readonly TPixel MediumVioletRed = ColorBuilder.FromRgba(199, 21, 133, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #191970.
- ///
- public static readonly TPixel MidnightBlue = ColorBuilder.FromRgba(25, 25, 112, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F5FFFA.
- ///
- public static readonly TPixel MintCream = ColorBuilder.FromRgba(245, 255, 250, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFE4E1.
- ///
- public static readonly TPixel MistyRose = ColorBuilder.FromRgba(255, 228, 225, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFE4B5.
- ///
- public static readonly TPixel Moccasin = ColorBuilder.FromRgba(255, 228, 181, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFDEAD.
- ///
- public static readonly TPixel NavajoWhite = ColorBuilder.FromRgba(255, 222, 173, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #000080.
- ///
- public static readonly TPixel Navy = ColorBuilder.FromRgba(0, 0, 128, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FDF5E6.
- ///
- public static readonly TPixel OldLace = ColorBuilder.FromRgba(253, 245, 230, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #808000.
- ///
- public static readonly TPixel Olive = ColorBuilder.FromRgba(128, 128, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #6B8E23.
- ///
- public static readonly TPixel OliveDrab = ColorBuilder.FromRgba(107, 142, 35, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFA500.
- ///
- public static readonly TPixel Orange = ColorBuilder.FromRgba(255, 165, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF4500.
- ///
- public static readonly TPixel OrangeRed = ColorBuilder.FromRgba(255, 69, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DA70D6.
- ///
- public static readonly TPixel Orchid = ColorBuilder.FromRgba(218, 112, 214, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #EEE8AA.
- ///
- public static readonly TPixel PaleGoldenrod = ColorBuilder.FromRgba(238, 232, 170, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #98FB98.
- ///
- public static readonly TPixel PaleGreen = ColorBuilder.FromRgba(152, 251, 152, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #AFEEEE.
- ///
- public static readonly TPixel PaleTurquoise = ColorBuilder.FromRgba(175, 238, 238, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DB7093.
- ///
- public static readonly TPixel PaleVioletRed = ColorBuilder.FromRgba(219, 112, 147, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFEFD5.
- ///
- public static readonly TPixel PapayaWhip = ColorBuilder.FromRgba(255, 239, 213, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFDAB9.
- ///
- public static readonly TPixel PeachPuff = ColorBuilder.FromRgba(255, 218, 185, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #CD853F.
- ///
- public static readonly TPixel Peru = ColorBuilder.FromRgba(205, 133, 63, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFC0CB.
- ///
- public static readonly TPixel Pink = ColorBuilder.FromRgba(255, 192, 203, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #DDA0DD.
- ///
- public static readonly TPixel Plum = ColorBuilder.FromRgba(221, 160, 221, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #B0E0E6.
- ///
- public static readonly TPixel PowderBlue = ColorBuilder.FromRgba(176, 224, 230, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #800080.
- ///
- public static readonly TPixel Purple = ColorBuilder.FromRgba(128, 0, 128, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #663399.
- ///
- public static readonly TPixel RebeccaPurple = ColorBuilder.FromRgba(102, 51, 153, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF0000.
- ///
- public static readonly TPixel Red = ColorBuilder.FromRgba(255, 0, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #BC8F8F.
- ///
- public static readonly TPixel RosyBrown = ColorBuilder.FromRgba(188, 143, 143, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #4169E1.
- ///
- public static readonly TPixel RoyalBlue = ColorBuilder.FromRgba(65, 105, 225, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #8B4513.
- ///
- public static readonly TPixel SaddleBrown = ColorBuilder.FromRgba(139, 69, 19, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FA8072.
- ///
- public static readonly TPixel Salmon = ColorBuilder.FromRgba(250, 128, 114, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F4A460.
- ///
- public static readonly TPixel SandyBrown = ColorBuilder.FromRgba(244, 164, 96, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #2E8B57.
- ///
- public static readonly TPixel SeaGreen = ColorBuilder.FromRgba(46, 139, 87, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFF5EE.
- ///
- public static readonly TPixel SeaShell = ColorBuilder.FromRgba(255, 245, 238, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #A0522D.
- ///
- public static readonly TPixel Sienna = ColorBuilder.FromRgba(160, 82, 45, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #C0C0C0.
- ///
- public static readonly TPixel Silver = ColorBuilder.FromRgba(192, 192, 192, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #87CEEB.
- ///
- public static readonly TPixel SkyBlue = ColorBuilder.FromRgba(135, 206, 235, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #6A5ACD.
- ///
- public static readonly TPixel SlateBlue = ColorBuilder.FromRgba(106, 90, 205, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #708090.
- ///
- public static readonly TPixel SlateGray = ColorBuilder.FromRgba(112, 128, 144, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFAFA.
- ///
- public static readonly TPixel Snow = ColorBuilder.FromRgba(255, 250, 250, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #00FF7F.
- ///
- public static readonly TPixel SpringGreen = ColorBuilder.FromRgba(0, 255, 127, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #4682B4.
- ///
- public static readonly TPixel SteelBlue = ColorBuilder.FromRgba(70, 130, 180, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #D2B48C.
- ///
- public static readonly TPixel Tan = ColorBuilder.FromRgba(210, 180, 140, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #008080.
- ///
- public static readonly TPixel Teal = ColorBuilder.FromRgba(0, 128, 128, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #D8BFD8.
- ///
- public static readonly TPixel Thistle = ColorBuilder.FromRgba(216, 191, 216, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FF6347.
- ///
- public static readonly TPixel Tomato = ColorBuilder.FromRgba(255, 99, 71, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFFFF.
- ///
- public static readonly TPixel Transparent = ColorBuilder.FromRgba(255, 255, 255, 0);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #40E0D0.
- ///
- public static readonly TPixel Turquoise = ColorBuilder.FromRgba(64, 224, 208, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #EE82EE.
- ///
- public static readonly TPixel Violet = ColorBuilder.FromRgba(238, 130, 238, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F5DEB3.
- ///
- public static readonly TPixel Wheat = ColorBuilder.FromRgba(245, 222, 179, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFFFF.
- ///
- public static readonly TPixel White = ColorBuilder.FromRgba(255, 255, 255, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #F5F5F5.
- ///
- public static readonly TPixel WhiteSmoke = ColorBuilder.FromRgba(245, 245, 245, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #FFFF00.
- ///
- public static readonly TPixel Yellow = ColorBuilder.FromRgba(255, 255, 0, 255);
-
- ///
- /// Represents a matching the W3C definition that has an hex value of #9ACD32.
- ///
- public static readonly TPixel YellowGreen = ColorBuilder.FromRgba(154, 205, 50, 255);
-
- ///
- /// Gets a collection of web safe, colors as defined in the CSS Color Module Level 4.
- ///
- public static TPixel[] WebSafePalette => WebSafePaletteLazy.Value;
-
- ///
- /// Gets a collection of colors as defined in the original second edition of Werner’s Nomenclature of Colours 1821.
- /// The hex codes were collected and defined by Nicholas Rougeux
- ///
- public static TPixel[] WernerPalette => WernerPaletteLazy.Value;
-
- private static TPixel[] GetWebSafePalette() => GetPalette(ColorConstants.WebSafeColors);
-
- private static TPixel[] GetWernerPalette() => GetPalette(ColorConstants.WernerColors);
-
- private static TPixel[] GetPalette(Rgba32[] palette)
- {
- var converted = new TPixel[palette.Length];
-
- Span constantsBytes = MemoryMarshal.Cast(palette.AsSpan());
- PixelOperations.Instance.FromRgba32Bytes(
- Configuration.Default,
- constantsBytes,
- converted,
- palette.Length);
-
- return converted;
- }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/PixelFormats/PixelImplementations/Rgba32.cs b/src/ImageSharp/PixelFormats/PixelImplementations/Rgba32.cs
index c58d17ef4..b439ef32c 100644
--- a/src/ImageSharp/PixelFormats/PixelImplementations/Rgba32.cs
+++ b/src/ImageSharp/PixelFormats/PixelImplementations/Rgba32.cs
@@ -1,6 +1,9 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
+using System;
+using System.Buffers.Binary;
+using System.Globalization;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -233,7 +236,20 @@ namespace SixLabors.ImageSharp.PixelFormats
///
/// The .
///
- public static Rgba32 FromHex(string hex) => ColorBuilder.FromHex(hex);
+ public static Rgba32 FromHex(string hex)
+ {
+ Guard.NotNullOrWhiteSpace(hex, nameof(hex));
+
+ hex = ToRgbaHex(hex);
+
+ if (hex is null || !uint.TryParse(hex, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out uint packedValue))
+ {
+ throw new ArgumentException("Hexadecimal string is not in the correct format.", nameof(hex));
+ }
+
+ packedValue = BinaryPrimitives.ReverseEndianness(packedValue);
+ return Unsafe.As(ref packedValue);
+ }
///
public PixelOperations CreatePixelOperations() => new PixelOperations();
@@ -426,5 +442,42 @@ namespace SixLabors.ImageSharp.PixelFormats
this.B = (byte)vector.Z;
this.A = (byte)vector.W;
}
+
+ ///
+ /// Converts the specified hex value to an rrggbbaa hex value.
+ ///
+ /// The hex value to convert.
+ ///
+ /// A rrggbbaa hex value.
+ ///
+ private static string ToRgbaHex(string hex)
+ {
+ if (hex[0] == '#')
+ {
+ hex = hex.Substring(1);
+ }
+
+ if (hex.Length == 8)
+ {
+ return hex;
+ }
+
+ if (hex.Length == 6)
+ {
+ return hex + "FF";
+ }
+
+ if (hex.Length < 3 || hex.Length > 4)
+ {
+ return null;
+ }
+
+ char r = hex[0];
+ char g = hex[1];
+ char b = hex[2];
+ char a = hex.Length == 3 ? 'F' : hex[3];
+
+ return new string(new[] { r, r, g, g, b, b, a, a });
+ }
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/PixelFormats/PixelImplementations/RgbaVector.cs b/src/ImageSharp/PixelFormats/PixelImplementations/RgbaVector.cs
index 96003cc5b..38e75d183 100644
--- a/src/ImageSharp/PixelFormats/PixelImplementations/RgbaVector.cs
+++ b/src/ImageSharp/PixelFormats/PixelImplementations/RgbaVector.cs
@@ -94,7 +94,7 @@ namespace SixLabors.ImageSharp.PixelFormats
///
/// The .
///
- public static RgbaVector FromHex(string hex) => ColorBuilder.FromHex(hex);
+ public static RgbaVector FromHex(string hex) => Color.FromHex(hex).ToPixel();
///
public PixelOperations CreatePixelOperations() => new PixelOperations();
diff --git a/src/ImageSharp/Processing/DefaultInternalImageProcessorContext.cs b/src/ImageSharp/Processing/DefaultImageProcessorContext.cs
similarity index 85%
rename from src/ImageSharp/Processing/DefaultInternalImageProcessorContext.cs
rename to src/ImageSharp/Processing/DefaultImageProcessorContext.cs
index 091da003a..d0c4c076f 100644
--- a/src/ImageSharp/Processing/DefaultInternalImageProcessorContext.cs
+++ b/src/ImageSharp/Processing/DefaultImageProcessorContext.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.Processing
/// Performs processor application operations on the source image
///
/// The pixel format
- internal class DefaultInternalImageProcessorContext : IInternalImageProcessingContext
+ internal class DefaultImageProcessorContext : IInternalImageProcessingContext
where TPixel : struct, IPixel
{
private readonly bool mutate;
@@ -21,11 +21,11 @@ namespace SixLabors.ImageSharp.Processing
private Image destination;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The image.
/// The mutate.
- public DefaultInternalImageProcessorContext(Image source, bool mutate)
+ public DefaultImageProcessorContext(Image source, bool mutate)
{
this.mutate = mutate;
this.source = source;
@@ -39,7 +39,7 @@ namespace SixLabors.ImageSharp.Processing
public MemoryAllocator MemoryAllocator => this.source.GetConfiguration().MemoryAllocator;
///
- public Image Apply()
+ public Image GetResultImage()
{
if (!this.mutate && this.destination is null)
{
@@ -65,8 +65,7 @@ namespace SixLabors.ImageSharp.Processing
return this.ApplyProcessor(processorImplementation);
}
- ///
- public IImageProcessingContext ApplyProcessor(IImageProcessor processor, Rectangle rectangle)
+ private IImageProcessingContext ApplyProcessor(IImageProcessor processor, Rectangle rectangle)
{
if (!this.mutate && this.destination is null)
{
@@ -86,8 +85,7 @@ namespace SixLabors.ImageSharp.Processing
return this;
}
- ///
- public IImageProcessingContext ApplyProcessor(IImageProcessor processor)
+ private IImageProcessingContext ApplyProcessor(IImageProcessor processor)
{
return this.ApplyProcessor(processor, this.GetCurrentBounds());
}
diff --git a/src/ImageSharp/Processing/Extensions/BinaryDiffuseExtensions.cs b/src/ImageSharp/Processing/Extensions/BinaryDiffuseExtensions.cs
index 7976daf25..760102aac 100644
--- a/src/ImageSharp/Processing/Extensions/BinaryDiffuseExtensions.cs
+++ b/src/ImageSharp/Processing/Extensions/BinaryDiffuseExtensions.cs
@@ -19,7 +19,7 @@ namespace SixLabors.ImageSharp.Processing
/// The image this method extends.
/// The diffusion algorithm to apply.
/// The threshold to apply binarization of the image. Must be between 0 and 1.
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDiffuse(
this IImageProcessingContext source,
IErrorDiffuser diffuser,
@@ -35,7 +35,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The structure that specifies the portion of the image object to alter.
///
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDiffuse(
this IImageProcessingContext source,
IErrorDiffuser diffuser,
@@ -51,7 +51,7 @@ namespace SixLabors.ImageSharp.Processing
/// The threshold to apply binarization of the image. Must be between 0 and 1.
/// The color to use for pixels that are above the threshold.
/// The color to use for pixels that are below the threshold
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDiffuse(
this IImageProcessingContext source,
IErrorDiffuser diffuser,
@@ -71,7 +71,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The structure that specifies the portion of the image object to alter.
///
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDiffuse(
this IImageProcessingContext source,
IErrorDiffuser diffuser,
diff --git a/src/ImageSharp/Processing/Extensions/BinaryDitherExtensions.cs b/src/ImageSharp/Processing/Extensions/BinaryDitherExtensions.cs
index b1e3d562e..e8ce252a2 100644
--- a/src/ImageSharp/Processing/Extensions/BinaryDitherExtensions.cs
+++ b/src/ImageSharp/Processing/Extensions/BinaryDitherExtensions.cs
@@ -18,7 +18,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The image this method extends.
/// The ordered ditherer.
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext
BinaryDither(this IImageProcessingContext source, IOrderedDither dither) =>
source.ApplyProcessor(new BinaryOrderedDitherProcessor(dither));
@@ -30,7 +30,7 @@ namespace SixLabors.ImageSharp.Processing
/// The ordered ditherer.
/// The color to use for pixels that are above the threshold.
/// The color to use for pixels that are below the threshold
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDither(
this IImageProcessingContext source,
IOrderedDither dither,
@@ -46,7 +46,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The structure that specifies the portion of the image object to alter.
///
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDither(
this IImageProcessingContext source,
IOrderedDither dither,
@@ -63,7 +63,7 @@ namespace SixLabors.ImageSharp.Processing
///
/// The structure that specifies the portion of the image object to alter.
///
- /// The to allow chaining of operations.
+ /// The to allow chaining of operations.
public static IImageProcessingContext BinaryDither(
this IImageProcessingContext source,
IOrderedDither dither,
diff --git a/src/ImageSharp/Processing/Extensions/ProcessingExtensions.cs b/src/ImageSharp/Processing/Extensions/ProcessingExtensions.cs
index e469af18b..2304a44c3 100644
--- a/src/ImageSharp/Processing/Extensions/ProcessingExtensions.cs
+++ b/src/ImageSharp/Processing/Extensions/ProcessingExtensions.cs
@@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System;
+
using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing.Processors;
@@ -13,18 +14,6 @@ namespace SixLabors.ImageSharp.Processing
///
public static class ProcessingExtensions
{
- ///
- /// Applies the given operation to the mutable image.
- /// Useful when we need to extract information like Width/Height to parametrize the next operation working on the chain.
- /// To achieve this the method actually implements an "inline" with as it's processing logic.
- ///
- /// The pixel format.
- /// The image to mutate.
- /// The operation to perform on the source.
- /// The to allow chaining of operations.
- public static IImageProcessingContext Apply(this IImageProcessingContext source, Action> operation)
- where TPixel : struct, IPixel => source.ApplyProcessor(new DelegateProcessor(operation));
-
///
/// Mutates the source image by applying the image operation to it.
///
@@ -48,9 +37,9 @@ namespace SixLabors.ImageSharp.Processing
Guard.NotNull(operation, nameof(operation));
Guard.NotNull(source, nameof(source));
- IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider.CreateImageProcessingContext(source, true);
+ IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider
+ .CreateImageProcessingContext(source, true);
operation(operationsRunner);
- operationsRunner.Apply();
}
///
@@ -65,9 +54,9 @@ namespace SixLabors.ImageSharp.Processing
Guard.NotNull(operations, nameof(operations));
Guard.NotNull(source, nameof(source));
- IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider.CreateImageProcessingContext(source, true);
+ IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider
+ .CreateImageProcessingContext(source, true);
operationsRunner.ApplyProcessors(operations);
- operationsRunner.Apply();
}
///
@@ -96,9 +85,10 @@ namespace SixLabors.ImageSharp.Processing
Guard.NotNull(operation, nameof(operation));
Guard.NotNull(source, nameof(source));
- IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider.CreateImageProcessingContext(source, false);
+ IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider
+ .CreateImageProcessingContext(source, false);
operation(operationsRunner);
- return operationsRunner.Apply();
+ return operationsRunner.GetResultImage();
}
///
@@ -114,9 +104,10 @@ namespace SixLabors.ImageSharp.Processing
Guard.NotNull(operations, nameof(operations));
Guard.NotNull(source, nameof(source));
- IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider.CreateImageProcessingContext(source, false);
+ IInternalImageProcessingContext operationsRunner = source.GetConfiguration().ImageOperationsProvider
+ .CreateImageProcessingContext(source, false);
operationsRunner.ApplyProcessors(operations);
- return operationsRunner.Apply();
+ return operationsRunner.GetResultImage();
}
///
@@ -125,7 +116,9 @@ namespace SixLabors.ImageSharp.Processing
/// The image processing context.
/// The operations to perform on the source.
/// The to allow chaining of operations.
- public static IImageProcessingContext ApplyProcessors(this IImageProcessingContext source, params IImageProcessor[] operations)
+ public static IImageProcessingContext ApplyProcessors(
+ this IImageProcessingContext source,
+ params IImageProcessor[] operations)
{
foreach (IImageProcessor p in operations)
{
@@ -155,7 +148,7 @@ namespace SixLabors.ImageSharp.Processing
IInternalImageProcessingContext operationsRunner = image.GetConfiguration()
.ImageOperationsProvider.CreateImageProcessingContext(image, this.mutate);
this.operation(operationsRunner);
- this.ResultImage = operationsRunner.Apply();
+ this.ResultImage = operationsRunner.GetResultImage();
}
}
}
diff --git a/src/ImageSharp/Processing/IImageProcessingContextFactory.cs b/src/ImageSharp/Processing/IImageProcessingContextFactory.cs
index 1ec2d191f..948e70b44 100644
--- a/src/ImageSharp/Processing/IImageProcessingContextFactory.cs
+++ b/src/ImageSharp/Processing/IImageProcessingContextFactory.cs
@@ -30,7 +30,7 @@ namespace SixLabors.ImageSharp.Processing
public IInternalImageProcessingContext CreateImageProcessingContext(Image source, bool mutate)
where TPixel : struct, IPixel
{
- return new DefaultInternalImageProcessorContext(source, mutate);
+ return new DefaultImageProcessorContext(source, mutate);
}
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/Processing/IImageProcessingContext{TPixel}.cs b/src/ImageSharp/Processing/IImageProcessingContext{TPixel}.cs
deleted file mode 100644
index b49cfe215..000000000
--- a/src/ImageSharp/Processing/IImageProcessingContext{TPixel}.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using SixLabors.ImageSharp.PixelFormats;
-using SixLabors.ImageSharp.Processing.Processors;
-using SixLabors.Primitives;
-
-namespace SixLabors.ImageSharp.Processing
-{
- ///
- /// A pixel-specific interface to queue up image operations to apply to an image.
- ///
- /// The pixel format
- public interface IImageProcessingContext : IImageProcessingContext
- where TPixel : struct, IPixel
- {
- ///
- /// Adds the processor to the current set of image operations to be applied.
- ///
- /// The processor to apply.
- /// The area to apply it to.
- /// The current operations class to allow chaining of operations.
- IImageProcessingContext ApplyProcessor(IImageProcessor processor, Rectangle rectangle);
-
- ///
- /// Adds the processor to the current set of image operations to be applied.
- ///
- /// The processor to apply
- /// The current operations class to allow chaining of operations.
- IImageProcessingContext ApplyProcessor(IImageProcessor processor);
- }
-
- ///
- /// An internal interface to queue up image operations and have a method to apply them to and return a result
- ///
- /// The pixel format
- internal interface IInternalImageProcessingContext : IImageProcessingContext
- where TPixel : struct, IPixel
- {
- ///
- /// Adds the processors to the current image
- ///
- /// The current image or a new image depending on whether this is allowed to mutate the source image.
- Image Apply();
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/Processing/IInternalImageProcessingContext.cs b/src/ImageSharp/Processing/IInternalImageProcessingContext.cs
new file mode 100644
index 000000000..55303b1ef
--- /dev/null
+++ b/src/ImageSharp/Processing/IInternalImageProcessingContext.cs
@@ -0,0 +1,22 @@
+// Copyright (c) Six Labors and contributors.
+// Licensed under the Apache License, Version 2.0.
+
+using SixLabors.ImageSharp.PixelFormats;
+
+namespace SixLabors.ImageSharp.Processing
+{
+ ///
+ /// An interface for internal operations we don't want to expose on .
+ ///
+ /// The pixel type.
+ internal interface IInternalImageProcessingContext : IImageProcessingContext
+ where TPixel : struct, IPixel
+ {
+ ///
+ /// Returns the result image to return by
+ /// (and other overloads).
+ ///
+ /// The current image or a new image depending on whether it is requested to mutate the source image.
+ Image GetResultImage();
+ }
+}
\ No newline at end of file
diff --git a/src/ImageSharp/Processing/Processors/DelegateProcessor.cs b/src/ImageSharp/Processing/Processors/DelegateProcessor.cs
deleted file mode 100644
index 7a9753d1a..000000000
--- a/src/ImageSharp/Processing/Processors/DelegateProcessor.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.PixelFormats;
-using SixLabors.Primitives;
-
-namespace SixLabors.ImageSharp.Processing.Processors
-{
- ///
- /// Allows the application of processing algorithms to images via an action delegate
- ///
- /// The pixel format.
- internal class DelegateProcessor : ImageProcessor
- where TPixel : struct, IPixel
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// The action.
- public DelegateProcessor(Action> action)
- {
- this.Action = action;
- }
-
- ///
- /// Gets the action that will be applied to the image.
- ///
- internal Action> Action { get; }
-
- ///
- protected override void BeforeImageApply(Image source, Rectangle sourceRectangle)
- {
- this.Action?.Invoke(source);
- }
-
- ///
- protected override void OnFrameApply(ImageFrame source, Rectangle sourceRectangle, Configuration configuration)
- {
- // NOP, we did all we wanted to do inside BeforeImageApply
- }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/Processing/Processors/Dithering/AtkinsonDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/AtkinsonDiffuser.cs
index 17c97ddc9..0461d179f 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/AtkinsonDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/AtkinsonDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Atkinson image dithering algorithm.
///
///
- public sealed class AtkinsonDiffuser : ErrorDiffuserBase
+ public sealed class AtkinsonDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/BurksDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/BurksDiffuser.cs
index 84455b24a..23d4321e9 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/BurksDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/BurksDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Burks image dithering algorithm.
///
///
- public sealed class BurksDiffuser : ErrorDiffuserBase
+ public sealed class BurksDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuserBase.cs b/src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuser.cs
similarity index 96%
rename from src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuserBase.cs
rename to src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuser.cs
index 327828c39..1c8156bf5 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuserBase.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/ErrorDiffuser.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
///
/// The base class for performing error diffusion based dithering.
///
- public abstract class ErrorDiffuserBase : IErrorDiffuser
+ public abstract class ErrorDiffuser : IErrorDiffuser
{
///
/// The vector to perform division.
@@ -41,11 +41,11 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
private readonly DenseMatrix matrix;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The dithering matrix.
/// The divisor.
- internal ErrorDiffuserBase(in DenseMatrix matrix, byte divisor)
+ internal ErrorDiffuser(in DenseMatrix matrix, byte divisor)
{
Guard.MustBeGreaterThan(divisor, 0, nameof(divisor));
diff --git a/src/ImageSharp/Processing/Processors/Dithering/FloydSteinbergDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/FloydSteinbergDiffuser.cs
index 6a7655b59..78a28a693 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/FloydSteinbergDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/FloydSteinbergDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Floyd–Steinberg image dithering algorithm.
///
///
- public sealed class FloydSteinbergDiffuser : ErrorDiffuserBase
+ public sealed class FloydSteinbergDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/JarvisJudiceNinkeDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/JarvisJudiceNinkeDiffuser.cs
index a69557d6d..64c861083 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/JarvisJudiceNinkeDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/JarvisJudiceNinkeDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the JarvisJudiceNinke image dithering algorithm.
///
///
- public sealed class JarvisJudiceNinkeDiffuser : ErrorDiffuserBase
+ public sealed class JarvisJudiceNinkeDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/Sierra2Diffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/Sierra2Diffuser.cs
index ebde2ceaf..b489f8f28 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/Sierra2Diffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/Sierra2Diffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Sierra2 image dithering algorithm.
///
///
- public sealed class Sierra2Diffuser : ErrorDiffuserBase
+ public sealed class Sierra2Diffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/Sierra3Diffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/Sierra3Diffuser.cs
index 144a83a82..04abc782a 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/Sierra3Diffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/Sierra3Diffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Sierra3 image dithering algorithm.
///
///
- public sealed class Sierra3Diffuser : ErrorDiffuserBase
+ public sealed class Sierra3Diffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/SierraLiteDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/SierraLiteDiffuser.cs
index d71fba9f2..2ac69cf45 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/SierraLiteDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/SierraLiteDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the SierraLite image dithering algorithm.
///
///
- public sealed class SierraLiteDiffuser : ErrorDiffuserBase
+ public sealed class SierraLiteDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/StevensonArceDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/StevensonArceDiffuser.cs
index 4b1323065..b929a28d3 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/StevensonArceDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/StevensonArceDiffuser.cs
@@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
///
/// Applies error diffusion based dithering using the Stevenson-Arce image dithering algorithm.
///
- public sealed class StevensonArceDiffuser : ErrorDiffuserBase
+ public sealed class StevensonArceDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Dithering/StuckiDiffuser.cs b/src/ImageSharp/Processing/Processors/Dithering/StuckiDiffuser.cs
index 1dd510a5e..bb3aebc3f 100644
--- a/src/ImageSharp/Processing/Processors/Dithering/StuckiDiffuser.cs
+++ b/src/ImageSharp/Processing/Processors/Dithering/StuckiDiffuser.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// Applies error diffusion based dithering using the Stucki image dithering algorithm.
///
///
- public sealed class StuckiDiffuser : ErrorDiffuserBase
+ public sealed class StuckiDiffuser : ErrorDiffuser
{
///
/// The diffusion matrix
diff --git a/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
index 5a043cb20..9625ca216 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/AffineTransformProcessor{TPixel}.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// Provides the base methods to perform affine transforms on an image.
///
/// The pixel format.
- internal class AffineTransformProcessor : TransformProcessorBase
+ internal class AffineTransformProcessor : TransformProcessor
where TPixel : struct, IPixel
{
public AffineTransformProcessor(AffineTransformProcessor definition)
diff --git a/src/ImageSharp/Processing/Processors/Transforms/CropProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/CropProcessor{TPixel}.cs
index 9bddda382..4c4c27def 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/CropProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/CropProcessor{TPixel}.cs
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// Provides methods to allow the cropping of an image.
///
/// The pixel format.
- internal class CropProcessor : TransformProcessorBase
+ internal class CropProcessor : TransformProcessor
where TPixel : struct, IPixel
{
private readonly CropProcessor definition;
diff --git a/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
index ab07040f7..15d8141ba 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ProjectiveTransformProcessor{TPixel}.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// Provides the base methods to perform non-affine transforms on an image.
///
/// The pixel format.
- internal class ProjectiveTransformProcessor : TransformProcessorBase
+ internal class ProjectiveTransformProcessor : TransformProcessor
where TPixel : struct, IPixel
{
private readonly ProjectiveTransformProcessor definition;
diff --git a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor{TPixel}.cs
index cf99f28dd..fdd1d339d 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor{TPixel}.cs
@@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// The original code has been adapted from .
///
/// The pixel format.
- internal class ResizeProcessor : TransformProcessorBase
+ internal class ResizeProcessor : TransformProcessor
where TPixel : struct, IPixel
{
// The following fields are not immutable but are optionally created on demand.
diff --git a/src/ImageSharp/Processing/Processors/Transforms/TransformProcessorBase.cs b/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
similarity index 89%
rename from src/ImageSharp/Processing/Processors/Transforms/TransformProcessorBase.cs
rename to src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
index 286ada2e5..ef508549a 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/TransformProcessorBase.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// The base class for all transform processors. Any processor that changes the dimensions of the image should inherit from this.
///
/// The pixel format.
- internal abstract class TransformProcessorBase : CloningImageProcessor
+ internal abstract class TransformProcessor : CloningImageProcessor
where TPixel : struct, IPixel
{
///
diff --git a/tests/ImageSharp.Benchmarks/Samplers/Glow.cs b/tests/ImageSharp.Benchmarks/Samplers/Glow.cs
index 29f69cdd5..263ce6a7e 100644
--- a/tests/ImageSharp.Benchmarks/Samplers/Glow.cs
+++ b/tests/ImageSharp.Benchmarks/Samplers/Glow.cs
@@ -28,7 +28,7 @@ namespace SixLabors.ImageSharp.Benchmarks
public void Setup()
{
this.bulk = new GlowProcessor(Color.Beige, 800 * .5f, GraphicsOptions.Default);
- this.parallel = new GlowProcessorParallel(NamedColors.Beige) { Radius = 800 * .5f, };
+ this.parallel = new GlowProcessorParallel(Color.Beige) { Radius = 800 * .5f, };
}
[Benchmark(Description = "ImageSharp Glow - Bulk")]
diff --git a/tests/ImageSharp.Tests/BaseImageOperationsExtensionTest.cs b/tests/ImageSharp.Tests/BaseImageOperationsExtensionTest.cs
index 857c19d87..d3de04354 100644
--- a/tests/ImageSharp.Tests/BaseImageOperationsExtensionTest.cs
+++ b/tests/ImageSharp.Tests/BaseImageOperationsExtensionTest.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.Tests
{
public abstract class BaseImageOperationsExtensionTest
{
- protected readonly IImageProcessingContext operations;
+ protected readonly IImageProcessingContext operations;
private readonly FakeImageOperationsProvider.FakeImageOperations internalOperations;
protected readonly Rectangle rect;
protected readonly GraphicsOptions options;
diff --git a/tests/ImageSharp.Tests/Colorspaces/Conversion/ApproximateColorspaceComparer.cs b/tests/ImageSharp.Tests/Colorspaces/Conversion/ApproximateColorspaceComparer.cs
index 57da2ff17..7bf84dd0a 100644
--- a/tests/ImageSharp.Tests/Colorspaces/Conversion/ApproximateColorspaceComparer.cs
+++ b/tests/ImageSharp.Tests/Colorspaces/Conversion/ApproximateColorspaceComparer.cs
@@ -28,7 +28,7 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces.Conversion
IEqualityComparer,
IEqualityComparer,
IEqualityComparer,
- IEqualityComparer
+ IEqualityComparer
{
private readonly float Epsilon;
@@ -222,14 +222,14 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces.Conversion
public int GetHashCode(GammaWorkingSpace obj) => obj.GetHashCode();
///
- public bool Equals(RgbWorkingSpaceBase x, RgbWorkingSpaceBase y)
+ public bool Equals(RgbWorkingSpace x, RgbWorkingSpace y)
{
return this.Equals(x.WhitePoint, y.WhitePoint)
&& this.Equals(x.ChromaticityCoordinates, y.ChromaticityCoordinates);
}
///
- public int GetHashCode(RgbWorkingSpaceBase obj) => obj.GetHashCode();
+ public int GetHashCode(RgbWorkingSpace obj) => obj.GetHashCode();
private bool Equals(float x, float y)
{
diff --git a/tests/ImageSharp.Tests/FakeImageOperationsProvider.cs b/tests/ImageSharp.Tests/FakeImageOperationsProvider.cs
index c91cb16d4..c3ae0cddf 100644
--- a/tests/ImageSharp.Tests/FakeImageOperationsProvider.cs
+++ b/tests/ImageSharp.Tests/FakeImageOperationsProvider.cs
@@ -57,7 +57,7 @@ namespace SixLabors.ImageSharp.Tests
public MemoryAllocator MemoryAllocator => this.Source.GetConfiguration().MemoryAllocator;
- public Image Apply()
+ public Image GetResultImage()
{
return this.Source;
}
@@ -86,25 +86,6 @@ namespace SixLabors.ImageSharp.Tests
return this;
}
- public IImageProcessingContext ApplyProcessor(IImageProcessor processor, Rectangle rectangle)
- {
- this.Applied.Add(new AppliedOperation
- {
- GenericProcessor = processor,
- Rectangle = rectangle
- });
- return this;
- }
-
- public IImageProcessingContext ApplyProcessor(IImageProcessor processor)
- {
- this.Applied.Add(new AppliedOperation
- {
- GenericProcessor = processor
- });
- return this;
- }
-
public struct AppliedOperation
{
public Rectangle? Rectangle { get; set; }
diff --git a/tests/ImageSharp.Tests/Image/ImageProcessingContextTests.cs b/tests/ImageSharp.Tests/Image/ImageProcessingContextTests.cs
deleted file mode 100644
index 6dadc6e7a..000000000
--- a/tests/ImageSharp.Tests/Image/ImageProcessingContextTests.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using SixLabors.ImageSharp.PixelFormats;
-using SixLabors.ImageSharp.Processing;
-using SixLabors.Primitives;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests
-{
- public class ImageProcessingContextTests
- {
- // [Fact]
- // public void MutatedSizeIsAccuratePerOperation()
- // {
- // var x500 = new Size(500, 500);
- // var x400 = new Size(400, 400);
- // var x300 = new Size(300, 300);
- // var x200 = new Size(200, 200);
- // var x100 = new Size(100, 100);
- // using (var image = new Image(500, 500))
- // {
- // image.Mutate(x =>
- // x.AssertSize(x500)
- // .Resize(x400).AssertSize(x400)
- // .Resize(x300).AssertSize(x300)
- // .Resize(x200).AssertSize(x200)
- // .Resize(x100).AssertSize(x100));
- // }
- // }
- //
- // [Fact]
- // public void ClonedSizeIsAccuratePerOperation()
- // {
- // var x500 = new Size(500, 500);
- // var x400 = new Size(400, 400);
- // var x300 = new Size(300, 300);
- // var x200 = new Size(200, 200);
- // var x100 = new Size(100, 100);
- // using (var image = new Image(500, 500))
- // {
- // image.Clone(x =>
- // x.AssertSize(x500)
- // .Resize(x400).AssertSize(x400)
- // .Resize(x300).AssertSize(x300)
- // .Resize(x200).AssertSize(x200)
- // .Resize(x100).AssertSize(x100));
- // }
- // }
- }
-
- public static class SizeAssertationExtensions
- {
- public static IImageProcessingContext AssertSize(this IImageProcessingContext context, Size size)
- {
- Assert.Equal(size, context.GetCurrentSize());
- return context;
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs b/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs
index d51470292..ea9957314 100644
--- a/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs
+++ b/tests/ImageSharp.Tests/Image/ImageTests.WrapMemory.cs
@@ -113,8 +113,8 @@ namespace SixLabors.ImageSharp.Tests
using (var memoryManager = new BitmapMemoryManager(bmp))
{
Memory memory = memoryManager.Memory;
- Bgra32 bg = NamedColors.Red;
- Bgra32 fg = NamedColors.Green;
+ Bgra32 bg = Color.Red;
+ Bgra32 fg = Color.Green;
using (var image = Image.WrapMemory(memory, bmp.Width, bmp.Height))
{
@@ -144,8 +144,8 @@ namespace SixLabors.ImageSharp.Tests
using (var bmp = new Bitmap(51, 23))
{
var memoryManager = new BitmapMemoryManager(bmp);
- Bgra32 bg = NamedColors.Red;
- Bgra32 fg = NamedColors.Green;
+ Bgra32 bg = Color.Red;
+ Bgra32 fg = Color.Green;
using (var image = Image.WrapMemory(memoryManager, bmp.Width, bmp.Height))
{
diff --git a/tests/ImageSharp.Tests/PixelFormats/ColorBuilderTests.cs b/tests/ImageSharp.Tests/PixelFormats/ColorBuilderTests.cs
deleted file mode 100644
index e56cac279..000000000
--- a/tests/ImageSharp.Tests/PixelFormats/ColorBuilderTests.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.PixelFormats;
-
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.Colors
-{
- public class ColorBuilderTests
- {
- [Fact]
- public void ParseShortHex()
- {
- Assert.Equal(new Rgb24(255, 255, 255), ColorBuilder.FromHex("#fff"));
- Assert.Equal(new Rgb24(255, 255, 255), ColorBuilder.FromHex("fff"));
- Assert.Equal(new Rgba32(0, 0, 0, 255), ColorBuilder.FromHex("000f"));
- }
-
- [Fact]
- public void ParseHexLeadingPoundIsOptional()
- {
- Assert.Equal(new Rgb24(0, 128, 128), ColorBuilder.FromHex("#008080"));
- Assert.Equal(new Rgb24(0, 128, 128), ColorBuilder.FromHex("008080"));
- }
-
- [Fact]
- public void ParseHexThrowsOnEmpty()
- {
- Assert.Throws(() => ColorBuilder.FromHex(""));
- }
-
- [Fact]
- public void ParseHexThrowsOnNull()
- {
- Assert.Throws(() => ColorBuilder.FromHex(null));
- }
- }
-}
diff --git a/tests/ImageSharp.Tests/PixelFormats/ColorDefinitionTests.cs b/tests/ImageSharp.Tests/PixelFormats/ColorDefinitionTests.cs
deleted file mode 100644
index 302e56ec7..000000000
--- a/tests/ImageSharp.Tests/PixelFormats/ColorDefinitionTests.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using SixLabors.ImageSharp.PixelFormats;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests
-{
- public class ColorDefinitionTests
- {
- public static TheoryData ColorNames
- {
- get
- {
- var result = new TheoryData();
- foreach (string name in typeof(NamedColors).GetTypeInfo()
- .GetFields().Where(x => x.Name != nameof(NamedColors.WebSafePalette)).Select(x => x.Name))
- {
- result.Add(name);
- }
- return result;
- }
- }
-
- [Theory]
- [MemberData(nameof(ColorNames))]
- public void AllColorsAreOnGenericAndBaseColor(string name)
- {
- FieldInfo generic = typeof(NamedColors).GetTypeInfo().GetField(name);
- FieldInfo specific = typeof(Rgba32).GetTypeInfo().GetField(name);
-
- Assert.NotNull(specific);
- Assert.NotNull(generic);
- Assert.True(specific.Attributes.HasFlag(FieldAttributes.Public), "specific must be public");
- Assert.True(specific.Attributes.HasFlag(FieldAttributes.Static), "specific must be static");
- Assert.True(generic.Attributes.HasFlag(FieldAttributes.Public), "generic must be public");
- Assert.True(generic.Attributes.HasFlag(FieldAttributes.Static), "generic must be static");
- Rgba32 expected = (Rgba32)generic.GetValue(null);
- Rgba32 actual = (Rgba32)specific.GetValue(null);
- Assert.Equal(expected, actual);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/Processing/DelegateTest.cs b/tests/ImageSharp.Tests/Processing/DelegateTest.cs
deleted file mode 100644
index 73d3c8023..000000000
--- a/tests/ImageSharp.Tests/Processing/DelegateTest.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.PixelFormats;
-using SixLabors.ImageSharp.Processing;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.Processing
-{
- using SixLabors.ImageSharp.Processing.Processors;
-
- public class DelegateTest : BaseImageOperationsExtensionTest
- {
- [Fact]
- public void Run_CreatedDelegateProcessor()
- {
- Action> action = (i) => { };
- this.operations.Apply(action);
-
- DelegateProcessor processor = this.Verify>();
- Assert.Equal(action, processor.Action);
- }
- }
-}
diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/BasicTestPatternProvider.cs b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/BasicTestPatternProvider.cs
index de203535c..752f8e18b 100644
--- a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/BasicTestPatternProvider.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/BasicTestPatternProvider.cs
@@ -31,9 +31,9 @@ namespace SixLabors.ImageSharp.Tests
{
var result = new Image(this.Configuration, this.Width, this.Height);
- TPixel topLeftColor = NamedColors.Red;
- TPixel topRightColor = NamedColors.Green;
- TPixel bottomLeftColor = NamedColors.Blue;
+ TPixel topLeftColor = Color.Red.ToPixel();
+ TPixel topRightColor = Color.Green.ToPixel();
+ TPixel bottomLeftColor = Color.Blue.ToPixel();
// Transparent purple:
TPixel bottomRightColor = default;
@@ -47,7 +47,7 @@ namespace SixLabors.ImageSharp.Tests
Span row = result.GetPixelRowSpan(y);
row.Slice(0, midX).Fill(topLeftColor);
- row.Slice(midX, this.Width-midX).Fill(topRightColor);
+ row.Slice(midX, this.Width - midX).Fill(topRightColor);
}
for (int y = midY; y < this.Height; y++)
@@ -55,7 +55,7 @@ namespace SixLabors.ImageSharp.Tests
Span row = result.GetPixelRowSpan(y);
row.Slice(0, midX).Fill(bottomLeftColor);
- row.Slice(midX, this.Width-midX).Fill(bottomRightColor);
+ row.Slice(midX, this.Width - midX).Fill(bottomRightColor);
}
return result;
diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestPatternProvider.cs b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestPatternProvider.cs
index 6df8c8501..94b2b3391 100644
--- a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestPatternProvider.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/TestPatternProvider.cs
@@ -21,6 +21,16 @@ namespace SixLabors.ImageSharp.Tests
{
static readonly Dictionary> TestImages = new Dictionary>();
+ private static TPixel[] BlackWhitePixels = new[] {
+ Color.Black.ToPixel(),
+ Color.White.ToPixel()
+ };
+
+ private static TPixel[] PinkBluePixels = new[] {
+ Color.HotPink.ToPixel(),
+ Color.Blue.ToPixel()
+ };
+
public TestPatternProvider(int width, int height)
: base(width, height)
{
@@ -80,12 +90,6 @@ namespace SixLabors.ImageSharp.Tests
stride = 1;
}
- TPixel[] c =
- {
- NamedColors.HotPink,
- NamedColors.Blue
- };
-
for (int y = top; y < bottom; y++)
{
int p = 0;
@@ -94,9 +98,9 @@ namespace SixLabors.ImageSharp.Tests
if (x % stride == 0)
{
p++;
- p = p % c.Length;
+ p = p % PinkBluePixels.Length;
}
- pixels[x, y] = c[p];
+ pixels[x, y] = PinkBluePixels[p];
}
}
}
@@ -113,11 +117,6 @@ namespace SixLabors.ImageSharp.Tests
int top = 0;
int bottom = pixels.Height / 2;
int stride = pixels.Width / 6;
- TPixel[] c =
- {
- NamedColors.Black,
- NamedColors.White
- };
int p = 0;
for (int y = top; y < bottom; y++)
@@ -125,7 +124,7 @@ namespace SixLabors.ImageSharp.Tests
if (y % stride == 0)
{
p++;
- p = p % c.Length;
+ p = p % BlackWhitePixels.Length;
}
int pstart = p;
for (int x = left; x < right; x++)
@@ -133,9 +132,9 @@ namespace SixLabors.ImageSharp.Tests
if (x % stride == 0)
{
p++;
- p = p % c.Length;
+ p = p % BlackWhitePixels.Length;
}
- pixels[x, y] = c[p];
+ pixels[x, y] = BlackWhitePixels[p];
}
p = pstart;
}