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);
}
///