diff --git a/src/ImageSharp/ColorSpaces/CieLab.cs b/src/ImageSharp/ColorSpaces/CieLab.cs
index 3b2815dd72..305a3da4fb 100644
--- a/src/ImageSharp/ColorSpaces/CieLab.cs
+++ b/src/ImageSharp/ColorSpaces/CieLab.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents a CIE L*a*b* 1976 color.
///
///
- internal readonly struct CieLab : IEquatable
+ public readonly struct CieLab : IEquatable
{
///
/// D50 standard illuminant.
diff --git a/src/ImageSharp/ColorSpaces/CieLch.cs b/src/ImageSharp/ColorSpaces/CieLch.cs
index eea9e24a31..793b68879a 100644
--- a/src/ImageSharp/ColorSpaces/CieLch.cs
+++ b/src/ImageSharp/ColorSpaces/CieLch.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents the CIE L*C*h°, cylindrical form of the CIE L*a*b* 1976 color.
///
///
- internal readonly struct CieLch : IEquatable
+ public readonly struct CieLch : IEquatable
{
///
/// D50 standard illuminant.
diff --git a/src/ImageSharp/ColorSpaces/CieLchuv.cs b/src/ImageSharp/ColorSpaces/CieLchuv.cs
index 6538ccbbcf..1a592c93f8 100644
--- a/src/ImageSharp/ColorSpaces/CieLchuv.cs
+++ b/src/ImageSharp/ColorSpaces/CieLchuv.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents the CIE L*C*h°, cylindrical form of the CIE L*u*v* 1976 color.
///
///
- internal readonly struct CieLchuv : IEquatable
+ public readonly struct CieLchuv : IEquatable
{
///
/// D50 standard illuminant.
diff --git a/src/ImageSharp/ColorSpaces/CieLuv.cs b/src/ImageSharp/ColorSpaces/CieLuv.cs
index 970362eaec..f6b2cd1103 100644
--- a/src/ImageSharp/ColorSpaces/CieLuv.cs
+++ b/src/ImageSharp/ColorSpaces/CieLuv.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// attempted perceptual uniformity
///
///
- internal readonly struct CieLuv : IEquatable
+ public readonly struct CieLuv : IEquatable
{
///
/// D65 standard illuminant.
diff --git a/src/ImageSharp/ColorSpaces/CieXyChromaticityCoordinates.cs b/src/ImageSharp/ColorSpaces/CieXyChromaticityCoordinates.cs
index de6725f760..db292041bc 100644
--- a/src/ImageSharp/ColorSpaces/CieXyChromaticityCoordinates.cs
+++ b/src/ImageSharp/ColorSpaces/CieXyChromaticityCoordinates.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents the coordinates of CIEXY chromaticity space
///
- internal readonly struct CieXyChromaticityCoordinates : IEquatable
+ public readonly struct CieXyChromaticityCoordinates : IEquatable
{
///
/// Gets the chromaticity X-coordinate.
diff --git a/src/ImageSharp/ColorSpaces/CieXyy.cs b/src/ImageSharp/ColorSpaces/CieXyy.cs
index 976454a31b..9d2fed225d 100644
--- a/src/ImageSharp/ColorSpaces/CieXyy.cs
+++ b/src/ImageSharp/ColorSpaces/CieXyy.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents an CIE xyY 1931 color
///
///
- internal readonly struct CieXyy : IEquatable
+ public readonly struct CieXyy : IEquatable
{
///
/// Gets the X chrominance component.
diff --git a/src/ImageSharp/ColorSpaces/CieXyz.cs b/src/ImageSharp/ColorSpaces/CieXyz.cs
index d23be97449..5d4acbcfda 100644
--- a/src/ImageSharp/ColorSpaces/CieXyz.cs
+++ b/src/ImageSharp/ColorSpaces/CieXyz.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents an CIE XYZ 1931 color
///
///
- internal readonly struct CieXyz : IEquatable
+ public readonly struct CieXyz : IEquatable
{
///
/// Gets the X component. A mix (a linear combination) of cone response curves chosen to be nonnegative.
diff --git a/src/ImageSharp/ColorSpaces/Cmyk.cs b/src/ImageSharp/ColorSpaces/Cmyk.cs
index 1fa097d9e8..f862151890 100644
--- a/src/ImageSharp/ColorSpaces/Cmyk.cs
+++ b/src/ImageSharp/ColorSpaces/Cmyk.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents an CMYK (cyan, magenta, yellow, keyline) color.
///
- internal readonly struct Cmyk : IEquatable
+ public readonly struct Cmyk : IEquatable
{
///
/// Gets the cyan color component.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs
index beccfc351e..055e9fbfc7 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Performs chromatic adaptation on the various color spaces.
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// Performs chromatic adaptation of given color.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs
index ebafa961bd..37f0e8567d 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// The converter for converting between CieLch to CieLab.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs
index 6664cc2274..0f54471e60 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// The converter for converting between CieLab to CieLch.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs
index 81f7dcb36b..77e707621a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// The converter for converting between CieLab to CieLchuv.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLuv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLuv.cs
index ba53ad17c7..a0dc4ea890 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLuv.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLuv.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly CieLchuvToCieLuvConverter CieLchuvToCieLuvConverter = new CieLchuvToCieLuvConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyy.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyy.cs
index 464c5ff919..b9958af49c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyy.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyy.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly CieXyzAndCieXyyConverter CieXyzAndCieXyyConverter = new CieXyzAndCieXyyConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
index 6ecb33ffc9..b29e249055 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly CieLabToCieXyzConverter CieLabToCieXyzConverter = new CieLabToCieXyzConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Cmyk.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Cmyk.cs
index f8628e39b6..8aaaad0ae8 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Cmyk.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Cmyk.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly CmykAndRgbConverter CmykAndRgbConverter = new CmykAndRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs
index 8832be9174..a91f5a66d1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly HslAndRgbConverter HslAndRgbConverter = new HslAndRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs
index 8269014276..c03239e164 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly HsvAndRgbConverter HsvAndRgbConverter = new HsvAndRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.HunterLab.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.HunterLab.cs
index 27c5589de4..a4a9aa24d1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.HunterLab.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.HunterLab.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// Converts a into a
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
index 2f65841bc2..f4a628cb8c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.LinearRgb.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly RgbToLinearRgbConverter RgbToLinearRgbConverter = new RgbToLinearRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs
index 052aeb6d15..a328057ac2 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// Converts a into a
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs
index 5ef7934481..31ec3dd401 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly LinearRgbToRgbConverter LinearRgbToRgbConverter = new LinearRgbToRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.YCbCr.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.YCbCr.cs
index 4bb3db82c9..2521114fb4 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.YCbCr.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.YCbCr.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Allows conversion to .
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
private static readonly YCbCrAndRgbConverter YCbCrAndRgbConverter = new YCbCrAndRgbConverter();
diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
index c422abfade..7de590e225 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
///
/// Converts between color spaces ensuring that the color is adapted using chromatic adaptation.
///
- internal partial class ColorSpaceConverter
+ public partial class ColorSpaceConverter
{
///
/// The default whitepoint used for converting to CieLab
diff --git a/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs b/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs
index dfba4b9269..e84b8bf255 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs
@@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
/// A linear transformation of a source color (XS, YS, ZS) into a destination color (XD, YD, ZD) by a linear transformation [M]
/// which is dependent on the source reference white (XWS, YWS, ZWS) and the destination reference white (XWD, YWD, ZWD).
///
- internal interface IChromaticAdaptation
+ public interface IChromaticAdaptation
{
///
/// Performs a linear transformation of a source color in to the destination color.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
index f19c07d44a..05d8ef551c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLchToCieLabConverter : IColorConversion
+ internal sealed class CieLchToCieLabConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
index 7a5d404b91..c82ad4ad92 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLabToCieLchConverter : IColorConversion
+ internal sealed class CieLabToCieLchConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
index 2225591aa0..88d965b5bb 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLabToCieXyzConverter : IColorConversion
+ internal sealed class CieLabToCieXyzConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
index 75f1a0bb87..3428dd0ae2 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLchuvToCieLuvConverter : IColorConversion
+ internal sealed class CieLchuvToCieLuvConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
index 71935547e0..9670a704e1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLuvToCieLchuvConverter : IColorConversion
+ internal sealed class CieLuvToCieLchuvConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
index cb16565790..9874a82907 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieLuvToCieXyzConverter : IColorConversion
+ internal sealed class CieLuvToCieXyzConverter : IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
index ff7f270331..856cd16322 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between CIE XYZ and CIE xyY
/// for formulas.
///
- internal class CieXyzAndCieXyyConverter : IColorConversion, IColorConversion
+ internal sealed class CieXyzAndCieXyyConverter : IColorConversion, IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
index e3a031e82c..405ccc8194 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Color converter between CIE XYZ and LMS
///
- internal class CieXyzAndLmsConverter : IColorConversion, IColorConversion
+ internal sealed class CieXyzAndLmsConverter : IColorConversion, IColorConversion
{
///
/// Default transformation matrix used, when no other is set. (Bradford)
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
index 24c89e1da6..1e4ad96b0d 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieXyzToCieLabConverter : IColorConversion
+ internal sealed class CieXyzToCieLabConverter : IColorConversion
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
index ef3c976c3b..614d3973e1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Converts from to .
///
- internal class CieXyzToCieLuvConverter : IColorConversion
+ internal sealed class CieXyzToCieLuvConverter : IColorConversion
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
index 743d133edf..d990d3ef6a 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Color converter between CieXyz and HunterLab
///
- internal class CieXyzToHunterLabConverter : CieXyzAndHunterLabConverterBase, IColorConversion
+ internal sealed class CieXyzToHunterLabConverter : CieXyzAndHunterLabConverterBase, IColorConversion
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
index 26d15beb3c..6b16e42282 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Color converter between CMYK and Rgb
///
- internal class CmykAndRgbConverter : IColorConversion, IColorConversion
+ internal sealed class CmykAndRgbConverter : IColorConversion, IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
index d8d152a966..45ad0d3196 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
///
///
- internal class GammaCompanding : ICompanding
+ public sealed class GammaCompanding : ICompanding
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
index 0cc5e8fd7a..1a885d6be5 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between HSL and Rgb
/// See for formulas.
///
- internal class HslAndRgbConverter : IColorConversion, IColorConversion
+ internal sealed class HslAndRgbConverter : IColorConversion, IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
index 0a14ce2f12..ed7c6dd2ca 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between HSV and Rgb
/// See for formulas.
///
- internal class HsvAndRgbConverter : IColorConversion, IColorConversion
+ internal sealed class HsvAndRgbConverter : IColorConversion, IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
index 241a060923..a7ba26270c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Color converter between HunterLab and CieXyz
///
- internal class HunterLabToCieXyzConverter : CieXyzAndHunterLabConverterBase, IColorConversion
+ internal sealed class HunterLabToCieXyzConverter : CieXyzAndHunterLabConverterBase, IColorConversion
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
index bded652b48..6e87769d79 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LCompanding.cs
@@ -14,7 +14,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
///
///
- internal class LCompanding : ICompanding
+ public sealed class LCompanding : ICompanding
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
index a985f8ed54..a38a45cb1c 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
@@ -8,12 +8,12 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Color converter between LinearRgb and Rgb
///
- internal class LinearRgbToRgbConverter : IColorConversion
+ internal sealed class LinearRgbToRgbConverter : IColorConversion
{
///
public Rgb Convert(in LinearRgb input)
{
- Vector3 vector = input.ToVector3();
+ var vector = input.ToVector3();
vector.X = input.WorkingSpace.Companding.Compress(vector.X);
vector.Y = input.WorkingSpace.Companding.Compress(vector.Y);
vector.Z = input.WorkingSpace.Companding.Compress(vector.Z);
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
index e7385054b9..aef0b560e5 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// DISCo, Department of Informatics, Systems and Communication, University of Milan-Bicocca, viale Sarca 336, 20126 Milan, Italy
/// https://web.stanford.edu/~sujason/ColorBalancing/Papers/Two%20New%20von%20Kries%20Based%20Chromatic%20Adaptation.pdf
///
- internal static class LmsAdaptationMatrix
+ public static class LmsAdaptationMatrix
{
///
/// Von Kries chromatic adaptation transform matrix (Hunt-Pointer-Estevez adjusted for D65)
@@ -25,9 +25,15 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public static readonly Matrix4x4 VonKriesHPEAdjusted
= Matrix4x4.Transpose(new Matrix4x4
{
- M11 = 0.40024F, M12 = 0.7076F, M13 = -0.08081F,
- M21 = -0.2263F, M22 = 1.16532F, M23 = 0.0457F,
- M31 = 0, M32 = 0, M33 = 0.91822F,
+ M11 = 0.40024F,
+ M12 = 0.7076F,
+ M13 = -0.08081F,
+ M21 = -0.2263F,
+ M22 = 1.16532F,
+ M23 = 0.0457F,
+ M31 = 0,
+ M32 = 0,
+ M33 = 0.91822F,
M44 = 1F // Important for inverse transforms.
});
@@ -37,9 +43,15 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public static readonly Matrix4x4 VonKriesHPE
= Matrix4x4.Transpose(new Matrix4x4
{
- M11 = 0.3897F, M12 = 0.6890F, M13 = -0.0787F,
- M21 = -0.2298F, M22 = 1.1834F, M23 = 0.0464F,
- M31 = 0, M32 = 0, M33 = 1F,
+ M11 = 0.3897F,
+ M12 = 0.6890F,
+ M13 = -0.0787F,
+ M21 = -0.2298F,
+ M22 = 1.1834F,
+ M23 = 0.0464F,
+ M31 = 0,
+ M32 = 0,
+ M33 = 1F,
M44 = 1F
});
@@ -54,9 +66,15 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
public static readonly Matrix4x4 Bradford
= Matrix4x4.Transpose(new Matrix4x4
{
- M11 = 0.8951F, M12 = 0.2664F, M13 = -0.1614F,
- M21 = -0.7502F, M22 = 1.7135F, M23 = 0.0367F,
- M31 = 0.0389F, M32 = -0.0685F, M33 = 1.0296F,
+ M11 = 0.8951F,
+ M12 = 0.2664F,
+ M13 = -0.1614F,
+ M21 = -0.7502F,
+ M22 = 1.7135F,
+ M23 = 0.0367F,
+ M31 = 0.0389F,
+ M32 = -0.0685F,
+ M33 = 1.0296F,
M44 = 1F
});
@@ -65,35 +83,53 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
public static readonly Matrix4x4 BradfordSharp
= Matrix4x4.Transpose(new Matrix4x4
- {
- M11 = 1.2694F, M12 = -0.0988F, M13 = -0.1706F,
- M21 = -0.8364F, M22 = 1.8006F, M23 = 0.0357F,
- M31 = 0.0297F, M32 = -0.0315F, M33 = 1.0018F,
- M44 = 1F
- });
+ {
+ M11 = 1.2694F,
+ M12 = -0.0988F,
+ M13 = -0.1706F,
+ M21 = -0.8364F,
+ M22 = 1.8006F,
+ M23 = 0.0357F,
+ M31 = 0.0297F,
+ M32 = -0.0315F,
+ M33 = 1.0018F,
+ M44 = 1F
+ });
///
/// CMCCAT2000 (fitted from all available color data sets)
///
public static readonly Matrix4x4 CMCCAT2000
= Matrix4x4.Transpose(new Matrix4x4
- {
- M11 = 0.7982F, M12 = 0.3389F, M13 = -0.1371F,
- M21 = -0.5918F, M22 = 1.5512F, M23 = 0.0406F,
- M31 = 0.0008F, M32 = 0.239F, M33 = 0.9753F,
- M44 = 1F
- });
+ {
+ M11 = 0.7982F,
+ M12 = 0.3389F,
+ M13 = -0.1371F,
+ M21 = -0.5918F,
+ M22 = 1.5512F,
+ M23 = 0.0406F,
+ M31 = 0.0008F,
+ M32 = 0.239F,
+ M33 = 0.9753F,
+ M44 = 1F
+ });
///
/// CAT02 (optimized for minimizing CIELAB differences)
///
public static readonly Matrix4x4 CAT02
= Matrix4x4.Transpose(new Matrix4x4
- {
- M11 = 0.7328F, M12 = 0.4296F, M13 = -0.1624F,
- M21 = -0.7036F, M22 = 1.6975F, M23 = 0.0061F,
- M31 = 0.0030F, M32 = 0.0136F, M33 = 0.9834F,
- M44 = 1F
- });
+ {
+ M11 = 0.7328F,
+ M12 = 0.4296F,
+ M13 = -0.1624F,
+ M21 = -0.7036F,
+ M22 = 1.6975F,
+ M23 = 0.0061F,
+ M31 = 0.0030F,
+ M32 = 0.0136F,
+ M33 = 0.9834F,
+ M44 = 1F
+ });
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
index 70e64256f8..758f5f7dcc 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RGBPrimariesChromaticityCoordinates.cs
@@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Represents the chromaticity coordinates of RGB primaries.
/// One of the specifiers of .
///
- internal readonly struct RgbPrimariesChromaticityCoordinates : IEquatable
+ public readonly struct RgbPrimariesChromaticityCoordinates : IEquatable
{
///
/// Initializes a new instance of the struct.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
index ffa006bc0e..8fea53c8b9 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec2020Companding.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// For 10-bits, companding is identical to
///
- internal class Rec2020Companding : ICompanding
+ public sealed class Rec2020Companding : ICompanding
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
index 9589b9b683..c5ed1076db 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/Rec709Companding.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// http://en.wikipedia.org/wiki/Rec._709
///
- internal class Rec709Companding : ICompanding
+ public sealed class Rec709Companding : ICompanding
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
index 101d135f57..d2ba91ce28 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbWorkingSpace.cs
@@ -8,7 +8,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
/// Trivial implementation of
///
- internal class RgbWorkingSpace : IEquatable
+ public class RgbWorkingSpace : IEquatable
{
///
/// Initializes a new instance of the class.
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/SRgbCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/SRgbCompanding.cs
index 65e87a599c..98938e6560 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/SRgbCompanding.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/SRgbCompanding.cs
@@ -14,7 +14,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
///
///
///
- internal class SRgbCompanding : ICompanding
+ public sealed class SRgbCompanding : ICompanding
{
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
index 5d2cd85ba2..cb7071adf1 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between YCbCr and Rgb
/// See for formulas.
///
- internal class YCbCrAndRgbConverter : IColorConversion, IColorConversion
+ internal sealed class YCbCrAndRgbConverter : IColorConversion, IColorConversion
{
private static readonly Vector3 MaxBytes = new Vector3(255F);
diff --git a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs
index f3d74b6f80..306f013ed3 100644
--- a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs
+++ b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
/// Transformation described here:
/// http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html
///
- internal class VonKriesChromaticAdaptation : IChromaticAdaptation
+ public class VonKriesChromaticAdaptation : IChromaticAdaptation
{
private readonly CieXyzAndLmsConverter converter;
@@ -41,7 +41,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion
/// Initializes a new instance of the class.
///
/// The color converter
- public VonKriesChromaticAdaptation(CieXyzAndLmsConverter converter)
+ internal VonKriesChromaticAdaptation(CieXyzAndLmsConverter converter)
{
this.converter = converter;
}
diff --git a/src/ImageSharp/ColorSpaces/Hsl.cs b/src/ImageSharp/ColorSpaces/Hsl.cs
index 14dfc5d1ac..04d8974f01 100644
--- a/src/ImageSharp/ColorSpaces/Hsl.cs
+++ b/src/ImageSharp/ColorSpaces/Hsl.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents a Hsl (hue, saturation, lightness) color.
///
- internal readonly struct Hsl : IEquatable
+ public readonly struct Hsl : IEquatable
{
///
/// Max range used for clamping.
diff --git a/src/ImageSharp/ColorSpaces/Hsv.cs b/src/ImageSharp/ColorSpaces/Hsv.cs
index 1035f94bf2..54fd0eee2e 100644
--- a/src/ImageSharp/ColorSpaces/Hsv.cs
+++ b/src/ImageSharp/ColorSpaces/Hsv.cs
@@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents a HSV (hue, saturation, value) color. Also known as HSB (hue, saturation, brightness).
///
- internal readonly struct Hsv : IEquatable
+ public readonly struct Hsv : IEquatable
{
///
/// Max range used for clamping.
diff --git a/src/ImageSharp/ColorSpaces/HunterLab.cs b/src/ImageSharp/ColorSpaces/HunterLab.cs
index 2f8da5a9a3..15f3acc95f 100644
--- a/src/ImageSharp/ColorSpaces/HunterLab.cs
+++ b/src/ImageSharp/ColorSpaces/HunterLab.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Represents an Hunter LAB color.
///
///
- internal readonly struct HunterLab : IEquatable
+ public readonly struct HunterLab : IEquatable
{
///
/// D50 standard illuminant.
diff --git a/src/ImageSharp/ColorSpaces/IAlmostEquatable.cs b/src/ImageSharp/ColorSpaces/IAlmostEquatable.cs
deleted file mode 100644
index 08c2dafbc6..0000000000
--- a/src/ImageSharp/ColorSpaces/IAlmostEquatable.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-
-namespace SixLabors.ImageSharp.ColorSpaces
-{
- ///
- /// Defines a generalized method that a value type or class implements to create
- /// a type-specific method for determining approximate equality of instances.
- ///
- /// The type of objects to compare.
- /// The object specifying the type to specify precision with.
- internal interface IAlmostEquatable
- where TPrecision : struct, IComparable
- {
- ///
- /// Indicates whether the current object is equal to another object of the same type
- /// when compared to the specified precision level.
- ///
- /// An object to compare with this object.
- /// The object specifying the level of precision.
- ///
- /// true if the current object is equal to the other parameter; otherwise, false.
- ///
- bool AlmostEquals(TPixel other, TPrecision precision);
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/ColorSpaces/ICompanding.cs b/src/ImageSharp/ColorSpaces/ICompanding.cs
index c16281b23b..8d81501b7e 100644
--- a/src/ImageSharp/ColorSpaces/ICompanding.cs
+++ b/src/ImageSharp/ColorSpaces/ICompanding.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Used for conversion to and backwards.
/// See also:
///
- internal interface ICompanding
+ public interface ICompanding
{
///
/// Expands a companded channel to its linear equivalent with respect to the energy.
diff --git a/src/ImageSharp/ColorSpaces/Illuminants.cs b/src/ImageSharp/ColorSpaces/Illuminants.cs
index 85c4063bf4..ed385e02cd 100644
--- a/src/ImageSharp/ColorSpaces/Illuminants.cs
+++ b/src/ImageSharp/ColorSpaces/Illuminants.cs
@@ -14,7 +14,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Descriptions taken from:
/// http://en.wikipedia.org/wiki/Standard_illuminant
///
- internal static class Illuminants
+ public static class Illuminants
{
///
/// Incandescent / Tungsten
diff --git a/src/ImageSharp/ColorSpaces/LinearRgb.cs b/src/ImageSharp/ColorSpaces/LinearRgb.cs
index e9e06c0bbb..343c6f1c54 100644
--- a/src/ImageSharp/ColorSpaces/LinearRgb.cs
+++ b/src/ImageSharp/ColorSpaces/LinearRgb.cs
@@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents an linear Rgb color with specified working space
///
- internal readonly struct LinearRgb : IEquatable
+ public readonly struct LinearRgb : IEquatable
{
///
/// The default LinearRgb working space.
diff --git a/src/ImageSharp/ColorSpaces/Lms.cs b/src/ImageSharp/ColorSpaces/Lms.cs
index 5c471649d3..3f55d8891d 100644
--- a/src/ImageSharp/ColorSpaces/Lms.cs
+++ b/src/ImageSharp/ColorSpaces/Lms.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// named after their responsivity (sensitivity) at long, medium and short wavelengths.
///
///
- internal readonly struct Lms : IEquatable
+ public readonly struct Lms : IEquatable
{
///
/// Gets the L long component.
diff --git a/src/ImageSharp/ColorSpaces/Rgb.cs b/src/ImageSharp/ColorSpaces/Rgb.cs
index 8faf4f2b59..bec279ad3f 100644
--- a/src/ImageSharp/ColorSpaces/Rgb.cs
+++ b/src/ImageSharp/ColorSpaces/Rgb.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
/// Represents an RGB color with specified working space.
///
- internal readonly struct Rgb : IEquatable
+ public readonly struct Rgb : IEquatable
{
///
/// The default rgb working space
@@ -97,20 +97,28 @@ namespace SixLabors.ImageSharp.ColorSpaces
this.WorkingSpace = workingSpace;
}
+ ///
+ /// Allows the implicit conversion of an instance of to a
+ /// .
+ ///
+ /// The instance of to convert.
+ /// An instance of .
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static implicit operator Rgb(Rgb24 color)
+ {
+ return new Rgb(color.R / 255F, color.G / 255F, color.B / 255F);
+ }
+
///
/// Allows the implicit conversion of an instance of to a
/// .
///
- ///
- /// The instance of to convert.
- ///
- ///
- /// An instance of .
- ///
+ /// The instance of to convert.
+ /// An instance of .
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static implicit operator Rgb(Rgba32 color)
{
- return new Rgb(color.R / 255F, color.G / 255F, color.B / 255F);
+ return new Rgba32(color.R / 255F, color.G / 255F, color.B / 255F);
}
///
diff --git a/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs b/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
index a2561640ac..62bf7d6292 100644
--- a/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
+++ b/src/ImageSharp/ColorSpaces/RgbWorkingSpaces.cs
@@ -10,7 +10,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
/// Chromaticity coordinates taken from:
///
///
- internal static class RgbWorkingSpaces
+ public static class RgbWorkingSpaces
{
///
/// sRgb working space.
diff --git a/src/ImageSharp/ColorSpaces/YCbCr.cs b/src/ImageSharp/ColorSpaces/YCbCr.cs
index f684f598b0..88f7cac4c3 100644
--- a/src/ImageSharp/ColorSpaces/YCbCr.cs
+++ b/src/ImageSharp/ColorSpaces/YCbCr.cs
@@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.ColorSpaces
///
///
///
- internal readonly struct YCbCr : IEquatable
+ public readonly struct YCbCr : IEquatable
{
///
/// Vector which is used in clamping to the max value.
diff --git a/src/ImageSharp/PixelFormats/Rgb24.cs b/src/ImageSharp/PixelFormats/Rgb24.cs
index d7e1c47ec0..24c311d0d3 100644
--- a/src/ImageSharp/PixelFormats/Rgb24.cs
+++ b/src/ImageSharp/PixelFormats/Rgb24.cs
@@ -50,6 +50,21 @@ namespace SixLabors.ImageSharp.PixelFormats
this.B = b;
}
+ ///
+ /// Allows the implicit conversion of an instance of to a
+ /// .
+ ///
+ /// The instance of to convert.
+ /// An instance of .
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static implicit operator Rgb24(ColorSpaces.Rgb color)
+ {
+ var vector = new Vector4(color.ToVector3(), 1);
+ Rgb24 rgb = default;
+ rgb.PackFromScaledVector4(vector);
+ return rgb;
+ }
+
///
public PixelOperations CreatePixelOperations() => new PixelOperations();
diff --git a/src/ImageSharp/PixelFormats/Rgba32.cs b/src/ImageSharp/PixelFormats/Rgba32.cs
index 79794ee462..e38368e620 100644
--- a/src/ImageSharp/PixelFormats/Rgba32.cs
+++ b/src/ImageSharp/PixelFormats/Rgba32.cs
@@ -206,6 +206,21 @@ namespace SixLabors.ImageSharp.PixelFormats
set => this.Rgba = value;
}
+ ///
+ /// Allows the implicit conversion of an instance of to a
+ /// .
+ ///
+ /// The instance of to convert.
+ /// An instance of .
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static implicit operator Rgba32(ColorSpaces.Rgb color)
+ {
+ var vector = new Vector4(color.ToVector3(), 1);
+ Rgba32 rgba = default;
+ rgba.PackFromScaledVector4(vector);
+ return rgba;
+ }
+
///
/// Compares two objects for equality.
///