diff --git a/src/ImageSharp/ColorSpaces/CieLab.cs b/src/ImageSharp/ColorSpaces/CieLab.cs
index 3b2815dd7..305a3da4f 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 eea9e24a3..793b68879 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 6538ccbbc..1a592c93f 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 970362eae..f6b2cd110 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 de6725f76..db292041b 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 976454a31..9d2fed225 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 d23be9744..5d4acbcfd 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 1fa097d9e..f86215189 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 beccfc351..055e9fbfc 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 ebafa961b..37f0e8567 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 6664cc227..0f54471e6 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 81f7dcb36..77e707621 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 ba53ad17c..a0dc4ea89 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 464c5ff91..b9958af49 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 6ecb33ffc..b29e24905 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 f8628e39b..8aaaad0ae 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 8832be917..a91f5a66d 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 826901427..c03239e16 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 27c5589de..a4a9aa24d 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 2f65841bc..f4a628cb8 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 052aeb6d1..a328057ac 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 5ef793448..31ec3dd40 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 4bb3db82c..2521114fb 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 c422abfad..7de590e22 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 dfba4b926..e84b8bf25 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 f19c07d44..05d8ef551 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 7a5d404b9..c82ad4ad9 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 2225591aa..88d965b5b 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 75f1a0bb8..3428dd0ae 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 71935547e..9670a704e 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 cb1656579..9874a8290 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 ff7f27033..856cd1632 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 e3a031e82..405ccc819 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 24c89e1da..1e4ad96b0 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 ef3c976c3..614d3973e 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 743d133ed..d990d3ef6 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 26d15beb3..6b16e4228 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 d8d152a96..45ad0d319 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 0cc5e8fd7..1a885d6be 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 0a14ce2f1..ed7c6dd2c 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 241a06092..a7ba26270 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 bded652b4..6e87769d7 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 a985f8ed5..a38a45cb1 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 e7385054b..aef0b560e 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 70e64256f..758f5f7dc 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 ffa006bc0..8fea53c8b 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 9589b9b68..c5ed1076d 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 101d135f5..d2ba91ce2 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 65e87a599..98938e656 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 5d2cd85ba..cb7071adf 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 f3d74b6f8..306f013ed 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 14dfc5d1a..04d8974f0 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 1035f94bf..54fd0eee2 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 2f8da5a9a..15f3acc95 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 08c2dafbc..000000000
--- 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 c16281b23..8d81501b7 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 85c4063bf..ed385e02c 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 e9e06c0bb..343c6f1c5 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 5c471649d..3f55d8891 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 8faf4f2b5..bec279ad3 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 a2561640a..62bf7d629 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 f684f598b..88f7cac4c 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 d7e1c47ec..24c311d0d 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 79794ee46..e38368e62 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.
///