diff --git a/src/ImageSharp/Colors/Spaces/Bgra32.cs b/src/ImageSharp/Colors/Spaces/Bgra32.cs index 09475f42c..cbd1d6119 100644 --- a/src/ImageSharp/Colors/Spaces/Bgra32.cs +++ b/src/ImageSharp/Colors/Spaces/Bgra32.cs @@ -19,6 +19,16 @@ namespace ImageSharp.Colors.Spaces /// public static readonly Bgra32 Empty = default(Bgra32); + /// + /// Min range used for clamping + /// + private static readonly Vector4 VectorMin = Vector4.Zero; + + /// + /// Max range used for clamping + /// + private static readonly Vector4 VectorMax = new Vector4(255); + /// /// The backing vector for SIMD support. /// @@ -34,7 +44,7 @@ namespace ImageSharp.Colors.Spaces public Bgra32(byte b, byte g, byte r, byte a = 255) : this() { - this.backingVector = Vector4.Clamp(new Vector4(b, g, r, a), Vector4.Zero, new Vector4(255)); + this.backingVector = Vector4.Clamp(new Vector4(b, g, r, a), VectorMin, VectorMax); } /// diff --git a/src/ImageSharp/Colors/Spaces/CieLab.cs b/src/ImageSharp/Colors/Spaces/CieLab.cs index a4b9cb5f4..ecc1bca5a 100644 --- a/src/ImageSharp/Colors/Spaces/CieLab.cs +++ b/src/ImageSharp/Colors/Spaces/CieLab.cs @@ -20,6 +20,16 @@ namespace ImageSharp.Colors.Spaces /// public static readonly CieLab Empty = default(CieLab); + /// + /// Min range used for clamping + /// + private static readonly Vector3 VectorMin = new Vector3(0, -100, -100); + + /// + /// Max range used for clamping + /// + private static readonly Vector3 VectorMax = new Vector3(100); + /// /// The backing vector for SIMD support. /// @@ -34,7 +44,7 @@ namespace ImageSharp.Colors.Spaces public CieLab(float l, float a, float b) : this() { - this.backingVector = Vector3.Clamp(new Vector3(l, a, b), new Vector3(0, -100, -100), new Vector3(100)); + this.backingVector = Vector3.Clamp(new Vector3(l, a, b), VectorMin, VectorMax); } /// diff --git a/src/ImageSharp/Colors/Spaces/Cmyk.cs b/src/ImageSharp/Colors/Spaces/Cmyk.cs index 82e749f39..53618312c 100644 --- a/src/ImageSharp/Colors/Spaces/Cmyk.cs +++ b/src/ImageSharp/Colors/Spaces/Cmyk.cs @@ -19,6 +19,16 @@ namespace ImageSharp.Colors.Spaces /// public static readonly Cmyk Empty = default(Cmyk); + /// + /// Min range used for clamping + /// + private static readonly Vector4 VectorMin = Vector4.Zero; + + /// + /// Max range used for clamping + /// + private static readonly Vector4 VectorMax = Vector4.One; + /// /// The backing vector for SIMD support. /// @@ -34,7 +44,7 @@ namespace ImageSharp.Colors.Spaces public Cmyk(float c, float m, float y, float k) : this() { - this.backingVector = Vector4.Clamp(new Vector4(c, m, y, k), Vector4.Zero, Vector4.One); + this.backingVector = Vector4.Clamp(new Vector4(c, m, y, k), VectorMin, VectorMax); } /// diff --git a/src/ImageSharp/Colors/Spaces/Hsl.cs b/src/ImageSharp/Colors/Spaces/Hsl.cs index 13973349c..66f4a52bc 100644 --- a/src/ImageSharp/Colors/Spaces/Hsl.cs +++ b/src/ImageSharp/Colors/Spaces/Hsl.cs @@ -19,6 +19,16 @@ namespace ImageSharp.Colors.Spaces /// public static readonly Hsl Empty = default(Hsl); + /// + /// Min range used for clamping + /// + private static readonly Vector3 VectorMin = Vector3.Zero; + + /// + /// Max range used for clamping + /// + private static readonly Vector3 VectorMax = new Vector3(360, 1, 1); + /// /// The backing vector for SIMD support. /// @@ -32,7 +42,7 @@ namespace ImageSharp.Colors.Spaces /// The l value (lightness) component. public Hsl(float h, float s, float l) { - this.backingVector = Vector3.Clamp(new Vector3(h, s, l), Vector3.Zero, new Vector3(360, 1, 1)); + this.backingVector = Vector3.Clamp(new Vector3(h, s, l), VectorMin, VectorMax); } /// diff --git a/src/ImageSharp/Colors/Spaces/Hsv.cs b/src/ImageSharp/Colors/Spaces/Hsv.cs index f7ed05b86..b34977e2d 100644 --- a/src/ImageSharp/Colors/Spaces/Hsv.cs +++ b/src/ImageSharp/Colors/Spaces/Hsv.cs @@ -19,6 +19,16 @@ namespace ImageSharp.Colors.Spaces /// public static readonly Hsv Empty = default(Hsv); + /// + /// Min range used for clamping + /// + private static readonly Vector3 VectorMin = Vector3.Zero; + + /// + /// Max range used for clamping + /// + private static readonly Vector3 VectorMax = new Vector3(360, 1, 1); + /// /// The backing vector for SIMD support. /// @@ -32,7 +42,7 @@ namespace ImageSharp.Colors.Spaces /// The v value (brightness) component. public Hsv(float h, float s, float v) { - this.backingVector = Vector3.Clamp(new Vector3(h, s, v), Vector3.Zero, new Vector3(360, 1, 1)); + this.backingVector = Vector3.Clamp(new Vector3(h, s, v), VectorMin, VectorMax); } /// diff --git a/src/ImageSharp/Colors/Spaces/YCbCr.cs b/src/ImageSharp/Colors/Spaces/YCbCr.cs index 83bddff7d..f5bf2bdf9 100644 --- a/src/ImageSharp/Colors/Spaces/YCbCr.cs +++ b/src/ImageSharp/Colors/Spaces/YCbCr.cs @@ -20,6 +20,11 @@ namespace ImageSharp.Colors.Spaces /// public static readonly YCbCr Empty = default(YCbCr); + /// + /// Min range used for clamping + /// + private static readonly Vector3 VectorMin = Vector3.Zero; + /// /// Vector which is used in clamping to the max value /// @@ -39,7 +44,7 @@ namespace ImageSharp.Colors.Spaces public YCbCr(byte y, byte cb, byte cr) : this() { - this.backingVector = Vector3.Clamp(new Vector3(y, cb, cr), Vector3.Zero, VectorMax); + this.backingVector = Vector3.Clamp(new Vector3(y, cb, cr), VectorMin, VectorMax); } ///