diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieLab.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieLab.cs
index a2dd5d9ce..4d94f583a 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieLab.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieLab.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieLabCieLab
+///
+/// Allows conversion between two color profiles based on the CIE Lab color space.
+///
+public static class ColorProfileConverterExtensionsCieLabCieLab
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -34,6 +50,20 @@ internal static class ColorProfileConverterExtensionsCieLabCieLab
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieXyz.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieXyz.cs
index 096622564..1de4510bc 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieXyz.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieXyz.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieLabCieXyz
+///
+/// Allows conversion between two color profiles based on the CIE Lab and CIE XYZ color spaces.
+///
+public static class ColorProfileConverterExtensionsCieLabCieXyz
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -33,6 +49,20 @@ internal static class ColorProfileConverterExtensionsCieLabCieXyz
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabRgb.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabRgb.cs
index 51be13799..4f0d47080 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabRgb.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabRgb.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieLabRgb
+///
+/// Allows conversion between two color profiles based on the CIE Lab and RGB color spaces.
+///
+public static class ColorProfileConverterExtensionsCieLabRgb
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -34,6 +50,20 @@ internal static class ColorProfileConverterExtensionsCieLabRgb
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieLab.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieLab.cs
index 3bab4e7b1..3bb1b2d4f 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieLab.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieLab.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieXyzCieLab
+///
+/// Allows conversion between two color profiles based on the CIE XYZ and CIE Lab color spaces.
+///
+public static class ColorProfileConverterExtensionsCieXyzCieLab
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -33,6 +49,20 @@ internal static class ColorProfileConverterExtensionsCieXyzCieLab
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieXyz.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieXyz.cs
index 518851147..dabca4579 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieXyz.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieXyz.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieXyzCieXyz
+///
+/// Allows conversion between two color profiles based on the CIE XYZ color space.
+///
+public static class ColorProfileConverterExtensionsCieXyzCieXyz
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -30,6 +46,20 @@ internal static class ColorProfileConverterExtensionsCieXyzCieXyz
return TTo.FromProfileConnectingSpace(options, in pcsFrom);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzRgb.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzRgb.cs
index c56bf214b..1803c0839 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzRgb.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzRgb.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsCieXyzRgb
+///
+/// Allows conversion between two color profiles based on the CIE XYZ and RGB color spaces.
+///
+public static class ColorProfileConverterExtensionsCieXyzRgb
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -33,6 +49,20 @@ internal static class ColorProfileConverterExtensionsCieXyzRgb
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieLab.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieLab.cs
index badbcc683..c2ed9a591 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieLab.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieLab.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsRgbCieLab
+///
+/// Allows conversion between two color profiles based on the RGB and CIE Lab color spaces.
+///
+public static class ColorProfileConverterExtensionsRgbCieLab
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -34,6 +50,20 @@ internal static class ColorProfileConverterExtensionsRgbCieLab
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieXyz.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieXyz.cs
index cd7d5e4d6..9cf7ec70d 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieXyz.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieXyz.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsRgbCieXyz
+///
+/// Allows conversion between two color profiles based on the RGB and CIE XYZ color spaces.
+///
+public static class ColorProfileConverterExtensionsRgbCieXyz
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -33,6 +49,20 @@ internal static class ColorProfileConverterExtensionsRgbCieXyz
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
diff --git a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbRgb.cs b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbRgb.cs
index 2a4b64b1c..34f3f7f19 100644
--- a/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbRgb.cs
+++ b/src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbRgb.cs
@@ -6,8 +6,24 @@ using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.ColorProfiles;
-internal static class ColorProfileConverterExtensionsRgbRgb
+///
+/// Allows conversion between two color profiles based on the RGB color space.
+///
+public static class ColorProfileConverterExtensionsRgbRgb
{
+ ///
+ /// Converts a color value from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// The conversion process may use ICC profiles if available; otherwise, it performs a manual
+ /// conversion through the profile connection space (PCS) with chromatic adaptation as needed. The method requires
+ /// both source and target types to be value types implementing the appropriate color profile interface.
+ ///
+ /// The source color profile type. Must implement .
+ /// The target color profile type. Must implement .
+ /// The color profile converter to use for the conversion.
+ /// The source color value to convert.
+ /// A value of type representing the converted color in the target color profile.
public static TTo Convert(this ColorProfileConverter converter, in TFrom source)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile
@@ -34,6 +50,20 @@ internal static class ColorProfileConverterExtensionsRgbRgb
return TTo.FromProfileConnectingSpace(options, in pcsTo);
}
+ ///
+ /// Converts a span of color values from one color profile to another using the specified color profile converter.
+ ///
+ ///
+ /// This method performs color conversion between two color profiles, handling necessary
+ /// transformations such as profile connection space conversion and chromatic adaptation. If ICC profiles are
+ /// available and applicable, the conversion uses them for improved accuracy. The method does not allocate memory
+ /// for the destination; the caller is responsible for providing a suitably sized span.
+ ///
+ /// The type representing the source color profile. Must implement .
+ /// The type representing the destination color profile. Must implement .
+ /// The color profile converter to use for the conversion operation.
+ /// A read-only span containing the source color values to convert.
+ /// A span that receives the converted color values. Must be at least as long as the source span.
public static void Convert(this ColorProfileConverter converter, ReadOnlySpan source, Span destination)
where TFrom : struct, IColorProfile
where TTo : struct, IColorProfile