diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
index ff3822c86..f4f28401f 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
@@ -211,7 +211,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// The source working space
/// The
- private LinearRgbToCieXyzConverter GetLinearRgbToCieXyzConverter(IRgbWorkingSpace workingSpace)
+ private LinearRgbToCieXyzConverter GetLinearRgbToCieXyzConverter(RgbWorkingSpace workingSpace)
{
if (this.linearRgbToCieXyzConverter != null && this.linearRgbToCieXyzConverter.SourceWorkingSpace.Equals(workingSpace))
{
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
index 6cfdb4853..5fdde5c75 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
@@ -168,7 +168,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// The target working space
/// The
- private CieXyzToLinearRgbConverter GetCieXyxToLinearRgbConverter(IRgbWorkingSpace workingSpace)
+ private CieXyzToLinearRgbConverter GetCieXyxToLinearRgbConverter(RgbWorkingSpace workingSpace)
{
if (this.cieXyzToLinearRgbConverter != null && this.cieXyzToLinearRgbConverter.TargetWorkingSpace.Equals(workingSpace))
{
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
index f86f50538..7142ab0e8 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
@@ -2,8 +2,8 @@
// Licensed under the Apache License, Version 2.0.
using System.Numerics;
-using SixLabors.ImageSharp.ColorSpaces;
using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.LmsColorSapce;
+using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSapce;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion
{
@@ -64,7 +64,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 IRgbWorkingSpace TargetRgbWorkingSpace { get; set; }
+ public RgbWorkingSpace TargetRgbWorkingSpace { get; set; }
///
/// Gets or sets the chromatic adaptation method used. When null, no adaptation will be performed.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/CieXyzToLinearRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/CieXyzToLinearRgbConverter.cs
index e75d4a804..217698c23 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/CieXyzToLinearRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/CieXyzToLinearRgbConverter.cs
@@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
///
/// Color converter between CieXyz and LinearRgb
///
- internal class CieXyzToLinearRgbConverter : LinearRgbAndCieXyzConverterBase, IColorConversion
+ internal sealed class CieXyzToLinearRgbConverter : LinearRgbAndCieXyzConverterBase, IColorConversion
{
private readonly Matrix4x4 conversionMatrix;
@@ -24,7 +24,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
/// Initializes a new instance of the class.
///
/// The target working space.
- public CieXyzToLinearRgbConverter(IRgbWorkingSpace workingSpace)
+ public CieXyzToLinearRgbConverter(RgbWorkingSpace workingSpace)
{
this.TargetWorkingSpace = workingSpace;
this.conversionMatrix = GetRgbToCieXyzMatrix(workingSpace);
@@ -33,7 +33,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
///
/// Gets the target working space
///
- public IRgbWorkingSpace TargetWorkingSpace { get; }
+ public RgbWorkingSpace TargetWorkingSpace { get; }
///
public LinearRgb Convert(in CieXyz input)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbAndCieXyzConverterBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbAndCieXyzConverterBase.cs
index a0da2bc26..bc11c51b5 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbAndCieXyzConverterBase.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbAndCieXyzConverterBase.cs
@@ -15,7 +15,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
///
/// The Rgb working space.
/// The based on the chromaticity and working space.
- public static Matrix4x4 GetRgbToCieXyzMatrix(IRgbWorkingSpace workingSpace)
+ public static Matrix4x4 GetRgbToCieXyzMatrix(RgbWorkingSpace workingSpace)
{
DebugGuard.NotNull(workingSpace, nameof(workingSpace));
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbToCieXyzConverter.cs
index 05cd5b72f..e597b66af 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/LinearRgbToCieXyzConverter.cs
@@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
///
/// Color converter between LinearRgb and CieXyz
///
- internal class LinearRgbToCieXyzConverter : LinearRgbAndCieXyzConverterBase, IColorConversion
+ internal sealed class LinearRgbToCieXyzConverter : LinearRgbAndCieXyzConverterBase, IColorConversion
{
private readonly Matrix4x4 conversionMatrix;
@@ -24,7 +24,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
/// Initializes a new instance of the class.
///
/// The target working space.
- public LinearRgbToCieXyzConverter(IRgbWorkingSpace workingSpace)
+ public LinearRgbToCieXyzConverter(RgbWorkingSpace workingSpace)
{
this.SourceWorkingSpace = workingSpace;
this.conversionMatrix = GetRgbToCieXyzMatrix(workingSpace);
@@ -33,7 +33,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
///
/// Gets the source working space
///
- public IRgbWorkingSpace SourceWorkingSpace { get; }
+ public RgbWorkingSpace SourceWorkingSpace { get; }
///
public CieXyz Convert(in LinearRgb input)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RGBPrimariesChromaticityCoordinates.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RGBPrimariesChromaticityCoordinates.cs
index 8afe2ffa0..4359d666e 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RGBPrimariesChromaticityCoordinates.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RGBPrimariesChromaticityCoordinates.cs
@@ -7,7 +7,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
{
///
/// Represents the chromaticity coordinates of RGB primaries.
- /// One of the specifiers of .
+ /// One of the specifiers of .
///
internal readonly struct RgbPrimariesChromaticityCoordinates : IEquatable
{
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RgbWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RgbWorkingSpace.cs
index d4d00db86..f4a79c744 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RgbWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rgb/RgbWorkingSpace.cs
@@ -4,9 +4,9 @@
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSapce
{
///
- /// Trivial implementation of
+ /// Trivial implementation of
///
- internal class RgbWorkingSpace : IRgbWorkingSpace
+ internal class RgbWorkingSpace
{
///
/// Initializes a new instance of the class.
@@ -70,14 +70,12 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSap
return !Equals(left, right);
}
- ///
public override bool Equals(object obj)
{
return obj is RgbWorkingSpace other && this.Equals(other);
}
- ///
- public bool Equals(IRgbWorkingSpace other)
+ public bool Equals(RgbWorkingSpace other)
{
// TODO: Object.Equals for ICompanding will be slow.
return this.WhitePoint.Equals(other.WhitePoint)
diff --git a/src/ImageSharp/ColorSpaces/ICompanding.cs b/src/ImageSharp/ColorSpaces/ICompanding.cs
index 2dfa575ed..17a7c874c 100644
--- a/src/ImageSharp/ColorSpaces/ICompanding.cs
+++ b/src/ImageSharp/ColorSpaces/ICompanding.cs
@@ -4,9 +4,9 @@
namespace SixLabors.ImageSharp.ColorSpaces
{
///
- /// Pair of companding functions for .
+ /// Pair of companding functions for .
/// Used for conversion to and backwards.
- /// See also:
+ /// See also:
///
internal interface ICompanding
{
diff --git a/src/ImageSharp/ColorSpaces/IRgbWorkingSpace.cs b/src/ImageSharp/ColorSpaces/IRgbWorkingSpace.cs
deleted file mode 100644
index 26c4ad6d4..000000000
--- a/src/ImageSharp/ColorSpaces/IRgbWorkingSpace.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSapce;
-
-namespace SixLabors.ImageSharp.ColorSpaces
-{
- ///
- /// Encasulates the RGB working color space
- ///
- internal interface IRgbWorkingSpace : IEquatable
- {
- ///
- /// Gets the reference white of the color space.
- ///
- CieXyz WhitePoint { get; }
-
- ///
- /// Gets the chromaticity coordinates of the primaries.
- ///
- RgbPrimariesChromaticityCoordinates ChromaticityCoordinates { get; }
-
- ///
- /// Gets the companding function associated with the RGB color system. Used for conversion to XYZ and backwards.
- ///
- ///
- ///
- ICompanding Companding { get; }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/LinearRgb.cs b/src/ImageSharp/ColorSpaces/LinearRgb.cs
index 312187c9d..aaf05e035 100644
--- a/src/ImageSharp/ColorSpaces/LinearRgb.cs
+++ b/src/ImageSharp/ColorSpaces/LinearRgb.cs
@@ -2,21 +2,21 @@
// Licensed under the Apache License, Version 2.0.
using System;
-using System.ComponentModel;
using System.Numerics;
using System.Runtime.CompilerServices;
+using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSapce;
namespace SixLabors.ImageSharp.ColorSpaces
{
///
- /// Represents an linear Rgb color with specified working space
+ /// Represents an linear Rgb color with specified working space
///
internal readonly struct LinearRgb : IColorVector, IEquatable, IAlmostEquatable
{
///
/// The default LinearRgb working space.
///
- public static readonly IRgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
+ public static readonly RgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
///
/// The backing vector for SIMD support.
@@ -43,7 +43,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The blue component ranging between 0 and 1.
/// The rgb working space.
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public LinearRgb(float r, float g, float b, IRgbWorkingSpace workingSpace)
+ public LinearRgb(float r, float g, float b, RgbWorkingSpace workingSpace)
: this(new Vector3(r, g, b), workingSpace)
{
}
@@ -64,7 +64,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The vector representing the r, g, b components.
/// The LinearRgb working space.
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public LinearRgb(Vector3 vector, IRgbWorkingSpace workingSpace)
+ public LinearRgb(Vector3 vector, RgbWorkingSpace workingSpace)
: this()
{
// Clamp to 0-1 range.
@@ -105,7 +105,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Gets the LinearRgb color space
///
- public IRgbWorkingSpace WorkingSpace { get; }
+ public RgbWorkingSpace WorkingSpace { get; }
///
public Vector3 Vector => this.backingVector;
diff --git a/src/ImageSharp/ColorSpaces/Rgb.cs b/src/ImageSharp/ColorSpaces/Rgb.cs
index 777e1f4c1..ccfa1760f 100644
--- a/src/ImageSharp/ColorSpaces/Rgb.cs
+++ b/src/ImageSharp/ColorSpaces/Rgb.cs
@@ -2,23 +2,22 @@
// Licensed under the Apache License, Version 2.0.
using System;
-using System.ComponentModel;
using System.Numerics;
using System.Runtime.CompilerServices;
-
+using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation.RgbColorSapce;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.ColorSpaces
{
///
- /// Represents an RGB color with specified working space
+ /// Represents an RGB color with specified working space
///
internal readonly struct Rgb : IColorVector, IEquatable, IAlmostEquatable
{
///
/// The default rgb working space
///
- public static readonly IRgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
+ public static readonly RgbWorkingSpace DefaultWorkingSpace = RgbWorkingSpaces.SRgb;
///
/// The backing vector for SIMD support.
@@ -45,7 +44,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The blue component ranging between 0 and 1.
/// The rgb working space.
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Rgb(float r, float g, float b, IRgbWorkingSpace workingSpace)
+ public Rgb(float r, float g, float b, RgbWorkingSpace workingSpace)
: this(new Vector3(r, g, b), workingSpace)
{
}
@@ -66,7 +65,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// The vector representing the r, g, b components.
/// The rgb working space.
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- public Rgb(Vector3 vector, IRgbWorkingSpace workingSpace)
+ public Rgb(Vector3 vector, RgbWorkingSpace workingSpace)
: this()
{
// Clamp to 0-1 range.
@@ -107,7 +106,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Gets the Rgb color space
///
- public IRgbWorkingSpace WorkingSpace { get; }
+ public RgbWorkingSpace WorkingSpace { get; }
///
public Vector3 Vector => this.backingVector;
diff --git a/tests/ImageSharp.Tests/TestUtilities/ApproximateFloatComparer.cs b/tests/ImageSharp.Tests/TestUtilities/ApproximateFloatComparer.cs
index 24363173a..102a629be 100644
--- a/tests/ImageSharp.Tests/TestUtilities/ApproximateFloatComparer.cs
+++ b/tests/ImageSharp.Tests/TestUtilities/ApproximateFloatComparer.cs
@@ -15,7 +15,7 @@ namespace SixLabors.ImageSharp.Tests
IEqualityComparer,
IEqualityComparer,
IEqualityComparer,
- IEqualityComparer
+ IEqualityComparer
{
private readonly float Eps;
@@ -76,9 +76,9 @@ namespace SixLabors.ImageSharp.Tests
throw new NotImplementedException();
}
- public bool Equals(IRgbWorkingSpace x, IRgbWorkingSpace y)
+ public bool Equals(RgbWorkingSpace x, RgbWorkingSpace y)
{
- if (x is IRgbWorkingSpace g1 && y is IRgbWorkingSpace g2)
+ if (x is RgbWorkingSpace g1 && y is RgbWorkingSpace g2)
{
return this.Equals(g1.WhitePoint, g2.WhitePoint)
&& this.Equals(g1.ChromaticityCoordinates, g2.ChromaticityCoordinates);
@@ -88,7 +88,7 @@ namespace SixLabors.ImageSharp.Tests
&& this.Equals(x.ChromaticityCoordinates, y.ChromaticityCoordinates);
}
- public int GetHashCode(IRgbWorkingSpace obj)
+ public int GetHashCode(RgbWorkingSpace obj)
{
throw new NotImplementedException();
}