Browse Source

Remove interface.

af/merge-core
James Jackson-South 8 years ago
parent
commit
661c0dca6d
  1. 22
      src/ImageSharp/ColorSpaces/Conversion/IColorConversion.cs
  2. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs
  3. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs
  4. 9
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs
  5. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs
  6. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs
  7. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs
  8. 14
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs
  9. 16
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs
  10. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs
  11. 8
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs
  12. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs
  13. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs
  14. 18
      src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs
  15. 14
      src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs
  16. 14
      src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs
  17. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs
  18. 2
      src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs
  19. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs
  20. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs
  21. 2
      src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs
  22. 10
      src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs
  23. 16
      src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs

22
src/ImageSharp/ColorSpaces/Conversion/IColorConversion.cs

@ -1,22 +0,0 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.ColorSpaces.Conversion
{
/// <summary>
/// Converts color between two color spaces.
/// </summary>
/// <typeparam name="T">The input color type.</typeparam>
/// <typeparam name="TResult">The result color type.</typeparam>
internal interface IColorConversion<T, TResult>
where T : struct
where TResult : struct
{
/// <summary>
/// Performs the conversion from the input to an instance of the output type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
TResult Convert(in T input);
}
}

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CIeLchToCieLabConverter.cs

@ -9,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLch"/> to <see cref="CieLab"/>. /// Converts from <see cref="CieLch"/> to <see cref="CieLab"/>.
/// </summary> /// </summary>
internal sealed class CieLchToCieLabConverter : IColorConversion<CieLch, CieLab> internal sealed class CieLchToCieLabConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLch"/> input to an instance of <see cref="CieLab"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLab Convert(in CieLch input) public CieLab Convert(in CieLch input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieLchConverter.cs

@ -9,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLab"/> to <see cref="CieLch"/>. /// Converts from <see cref="CieLab"/> to <see cref="CieLch"/>.
/// </summary> /// </summary>
internal sealed class CieLabToCieLchConverter : IColorConversion<CieLab, CieLch> internal sealed class CieLabToCieLchConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLab"/> input to an instance of <see cref="CieLch"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLch Convert(in CieLab input) public CieLch Convert(in CieLab input)
{ {

9
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLabToCieXyzConverter.cs

@ -1,7 +1,6 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
@ -10,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLab"/> to <see cref="CieXyz"/>. /// Converts from <see cref="CieLab"/> to <see cref="CieXyz"/>.
/// </summary> /// </summary>
internal sealed class CieLabToCieXyzConverter : IColorConversion<CieLab, CieXyz> internal sealed class CieLabToCieXyzConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLab"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in CieLab input) public CieXyz Convert(in CieLab input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLchuvToCieLuvConverter.cs

@ -9,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLch"/> to <see cref="CieLab"/>. /// Converts from <see cref="CieLch"/> to <see cref="CieLab"/>.
/// </summary> /// </summary>
internal sealed class CieLchuvToCieLuvConverter : IColorConversion<CieLchuv, CieLuv> internal sealed class CieLchuvToCieLuvConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLchuv"/> input to an instance of <see cref="CieLuv"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLuv Convert(in CieLchuv input) public CieLuv Convert(in CieLchuv input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieLchuvConverter.cs

@ -9,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLab"/> to <see cref="CieLch"/>. /// Converts from <see cref="CieLab"/> to <see cref="CieLch"/>.
/// </summary> /// </summary>
internal sealed class CieLuvToCieLchuvConverter : IColorConversion<CieLuv, CieLchuv> internal sealed class CieLuvToCieLchuvConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLuv"/> input to an instance of <see cref="CieLchuv"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLchuv Convert(in CieLuv input) public CieLchuv Convert(in CieLuv input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieLuvToCieXyzConverter.cs

@ -9,9 +9,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieLuv"/> to <see cref="CieXyz"/>. /// Converts from <see cref="CieLuv"/> to <see cref="CieXyz"/>.
/// </summary> /// </summary>
internal sealed class CieLuvToCieXyzConverter : IColorConversion<CieLuv, CieXyz> internal sealed class CieLuvToCieXyzConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieLuv"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in CieLuv input) public CieXyz Convert(in CieLuv input)
{ {

14
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndCieXyyConverter.cs

@ -10,9 +10,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between CIE XYZ and CIE xyY /// Color converter between CIE XYZ and CIE xyY
/// <see href="http://www.brucelindbloom.com/"/> for formulas. /// <see href="http://www.brucelindbloom.com/"/> for formulas.
/// </summary> /// </summary>
internal sealed class CieXyzAndCieXyyConverter : IColorConversion<CieXyz, CieXyy>, IColorConversion<CieXyy, CieXyz> internal sealed class CieXyzAndCieXyyConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="CieXyy"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyy Convert(in CieXyz input) public CieXyy Convert(in CieXyz input)
{ {
@ -27,7 +31,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new CieXyy(x, y, input.Y); return new CieXyy(x, y, input.Y);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieXyy"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in CieXyy input) public CieXyz Convert(in CieXyy input)
{ {

16
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzAndLmsConverter.cs

@ -7,9 +7,9 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between CIE XYZ and LMS /// Color converter between <see cref="CieXyz"/> and <see cref="Lms"/>
/// </summary> /// </summary>
internal sealed class CieXyzAndLmsConverter : IColorConversion<CieXyz, Lms>, IColorConversion<Lms, CieXyz> internal sealed class CieXyzAndLmsConverter
{ {
/// <summary> /// <summary>
/// Default transformation matrix used, when no other is set. (Bradford) /// Default transformation matrix used, when no other is set. (Bradford)
@ -43,7 +43,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
Matrix4x4.Invert(this.transformationMatrix, out this.inverseTransformationMatrix); Matrix4x4.Invert(this.transformationMatrix, out this.inverseTransformationMatrix);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="Lms"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Lms Convert(in CieXyz input) public Lms Convert(in CieXyz input)
{ {
@ -52,7 +56,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new Lms(vector); return new Lms(vector);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Lms"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in Lms input) public CieXyz Convert(in Lms input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLabConverter.cs

@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieXyz"/> to <see cref="CieLab"/>. /// Converts from <see cref="CieXyz"/> to <see cref="CieLab"/>.
/// </summary> /// </summary>
internal sealed class CieXyzToCieLabConverter : IColorConversion<CieXyz, CieLab> internal sealed class CieXyzToCieLabConverter
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="CieXyzToCieLabConverter"/> class. /// Initializes a new instance of the <see cref="CieXyzToCieLabConverter"/> class.
@ -35,7 +35,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// </summary> /// </summary>
public CieXyz LabWhitePoint { get; } public CieXyz LabWhitePoint { get; }
/// <inheritdoc /> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="CieLab"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLab Convert(in CieXyz input) public CieLab Convert(in CieXyz input)
{ {

8
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs

@ -9,7 +9,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Converts from <see cref="CieXyz"/> to <see cref="CieLuv"/>. /// Converts from <see cref="CieXyz"/> to <see cref="CieLuv"/>.
/// </summary> /// </summary>
internal sealed class CieXyzToCieLuvConverter : IColorConversion<CieXyz, CieLuv> internal sealed class CieXyzToCieLuvConverter
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="CieXyzToCieLuvConverter"/> class. /// Initializes a new instance of the <see cref="CieXyzToCieLuvConverter"/> class.
@ -35,7 +35,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// </summary> /// </summary>
public CieXyz LuvWhitePoint { get; } public CieXyz LuvWhitePoint { get; }
/// <inheritdoc /> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="CieLuv"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieLuv Convert(in CieXyz input) public CieLuv Convert(in CieXyz input)
{ {

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToHunterLabConverter.cs

@ -7,9 +7,9 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between CieXyz and HunterLab /// Color converter between <see cref="CieXyz"/> and <see cref="HunterLab"/>
/// </summary> /// </summary>
internal sealed class CieXyzToHunterLabConverter : CieXyzAndHunterLabConverterBase, IColorConversion<CieXyz, HunterLab> internal sealed class CieXyzToHunterLabConverter : CieXyzAndHunterLabConverterBase
{ {
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="CieXyzToHunterLabConverter"/> class. /// Initializes a new instance of the <see cref="CieXyzToHunterLabConverter"/> class.
@ -35,7 +35,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// </summary> /// </summary>
public CieXyz HunterLabWhitePoint { get; } public CieXyz HunterLabWhitePoint { get; }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="HunterLab"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public HunterLab Convert(in CieXyz input) public HunterLab Convert(in CieXyz input)
{ {

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs

@ -7,9 +7,9 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between CieXyz and LinearRgb /// Color converter between <see cref="CieXyz"/> and <see cref="LinearRgb"/>
/// </summary> /// </summary>
internal sealed class CieXyzToLinearRgbConverter : LinearRgbAndCieXyzConverterBase, IColorConversion<CieXyz, LinearRgb> internal sealed class CieXyzToLinearRgbConverter : LinearRgbAndCieXyzConverterBase
{ {
private readonly Matrix4x4 conversionMatrix; private readonly Matrix4x4 conversionMatrix;
@ -38,7 +38,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// </summary> /// </summary>
public RgbWorkingSpace TargetWorkingSpace { get; } public RgbWorkingSpace TargetWorkingSpace { get; }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="CieXyz"/> input to an instance of <see cref="LinearRgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public LinearRgb Convert(in CieXyz input) public LinearRgb Convert(in CieXyz input)
{ {

18
src/ImageSharp/ColorSpaces/Conversion/Implementation/CmykAndRgbConverter.cs

@ -8,11 +8,15 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between CMYK and Rgb /// Color converter between <see cref="Cmyk"/> and <see cref="Rgb"/>
/// </summary> /// </summary>
internal sealed class CmykAndRgbConverter : IColorConversion<Cmyk, Rgb>, IColorConversion<Rgb, Cmyk> internal sealed class CmykAndRgbConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Cmyk"/> input to an instance of <see cref="Rgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Rgb Convert(in Cmyk input) public Rgb Convert(in Cmyk input)
{ {
@ -20,11 +24,15 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new Rgb(rgb); return new Rgb(rgb);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Rgb"/> input to an instance of <see cref="Cmyk"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Cmyk Convert(in Rgb input) public Cmyk Convert(in Rgb input)
{ {
// To CMYK // To CMY
Vector3 cmy = Vector3.One - input.ToVector3(); Vector3 cmy = Vector3.One - input.ToVector3();
// To CMYK // To CMYK

14
src/ImageSharp/ColorSpaces/Conversion/Implementation/HslAndRgbConverter.cs

@ -10,9 +10,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between HSL and Rgb /// Color converter between HSL and Rgb
/// See <see href="http://www.poynton.com/PDFs/coloureq.pdf"/> for formulas. /// See <see href="http://www.poynton.com/PDFs/coloureq.pdf"/> for formulas.
/// </summary> /// </summary>
internal sealed class HslAndRgbConverter : IColorConversion<Hsl, Rgb>, IColorConversion<Rgb, Hsl> internal sealed class HslAndRgbConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Hsl"/> input to an instance of <see cref="Rgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Rgb Convert(in Hsl input) public Rgb Convert(in Hsl input)
{ {
@ -43,7 +47,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new Rgb(r, g, b); return new Rgb(r, g, b);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Rgb"/> input to an instance of <see cref="Hsl"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Hsl Convert(in Rgb input) public Hsl Convert(in Rgb input)
{ {

14
src/ImageSharp/ColorSpaces/Conversion/Implementation/HsvAndRgbConverter.cs

@ -10,9 +10,13 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// Color converter between HSV and Rgb /// Color converter between HSV and Rgb
/// See <see href="http://www.poynton.com/PDFs/coloureq.pdf"/> for formulas. /// See <see href="http://www.poynton.com/PDFs/coloureq.pdf"/> for formulas.
/// </summary> /// </summary>
internal sealed class HsvAndRgbConverter : IColorConversion<Hsv, Rgb>, IColorConversion<Rgb, Hsv> internal sealed class HsvAndRgbConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Hsv"/> input to an instance of <see cref="Rgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Rgb Convert(in Hsv input) public Rgb Convert(in Hsv input)
{ {
@ -75,7 +79,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new Rgb(r, g, b); return new Rgb(r, g, b);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Rgb"/> input to an instance of <see cref="Hsv"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Hsv Convert(in Rgb input) public Hsv Convert(in Rgb input)
{ {

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/HunterLabToCieXyzConverter.cs

@ -7,11 +7,15 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between HunterLab and CieXyz /// Color converter between <see cref="HunterLab"/> and <see cref="CieXyz"/>
/// </summary> /// </summary>
internal sealed class HunterLabToCieXyzConverter : CieXyzAndHunterLabConverterBase, IColorConversion<HunterLab, CieXyz> internal sealed class HunterLabToCieXyzConverter : CieXyzAndHunterLabConverterBase
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="HunterLab"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public CieXyz Convert(in HunterLab input) public CieXyz Convert(in HunterLab input)
{ {

2
src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs

@ -6,7 +6,7 @@ using System.Numerics;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Provides base methods for converting between Rgb and CieXyz color spaces. /// Provides base methods for converting between <see cref="LinearRgb"/> and <see cref="CieXyz"/> color spaces.
/// </summary> /// </summary>
internal abstract class LinearRgbAndCieXyzConverterBase internal abstract class LinearRgbAndCieXyzConverterBase
{ {

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs

@ -6,9 +6,9 @@ using System.Numerics;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between LinearRgb and CieXyz /// Color converter between <see cref="LinearRgb"/> and <see cref="CieXyz"/>
/// </summary> /// </summary>
internal sealed class LinearRgbToCieXyzConverter : LinearRgbAndCieXyzConverterBase, IColorConversion<LinearRgb, CieXyz> internal sealed class LinearRgbToCieXyzConverter : LinearRgbAndCieXyzConverterBase
{ {
private readonly Matrix4x4 conversionMatrix; private readonly Matrix4x4 conversionMatrix;
@ -35,7 +35,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// </summary> /// </summary>
public RgbWorkingSpace SourceWorkingSpace { get; } public RgbWorkingSpace SourceWorkingSpace { get; }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="LinearRgb"/> input to an instance of <see cref="CieXyz"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
public CieXyz Convert(in LinearRgb input) public CieXyz Convert(in LinearRgb input)
{ {
DebugGuard.IsTrue(input.WorkingSpace.Equals(this.SourceWorkingSpace), nameof(input.WorkingSpace), "Input and source working spaces must be equal."); DebugGuard.IsTrue(input.WorkingSpace.Equals(this.SourceWorkingSpace), nameof(input.WorkingSpace), "Input and source working spaces must be equal.");

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToRgbConverter.cs

@ -6,11 +6,15 @@ using System.Numerics;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between LinearRgb and Rgb /// Color converter between <see cref="LinearRgb"/> and <see cref="Rgb"/>
/// </summary> /// </summary>
internal sealed class LinearRgbToRgbConverter : IColorConversion<LinearRgb, Rgb> internal sealed class LinearRgbToRgbConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="LinearRgb"/> input to an instance of <see cref="Rgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
public Rgb Convert(in LinearRgb input) public Rgb Convert(in LinearRgb input)
{ {
var vector = input.ToVector3(); var vector = input.ToVector3();

2
src/ImageSharp/ColorSpaces/Conversion/Implementation/LmsAdaptationMatrix.cs

@ -7,7 +7,7 @@ using System.Numerics;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// AdaptionMatrix3X3 used for transformation from XYZ to LMS, defining the cone response domain. /// Matrices used for transformation from <see cref="CieXyz"/> to <see cref="Lms"/>, defining the cone response domain.
/// Used in <see cref="IChromaticAdaptation"/> /// Used in <see cref="IChromaticAdaptation"/>
/// </summary> /// </summary>
/// <remarks> /// <remarks>

10
src/ImageSharp/ColorSpaces/Conversion/Implementation/RgbToLinearRgbConverter.cs

@ -8,12 +8,16 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
/// <summary> /// <summary>
/// Color converter between Rgb and LinearRgb /// Color converter between Rgb and LinearRgb
/// </summary> /// </summary>
internal class RgbToLinearRgbConverter : IColorConversion<Rgb, LinearRgb> internal class RgbToLinearRgbConverter
{ {
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Rgb"/> input to an instance of <see cref="LinearRgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
public LinearRgb Convert(in Rgb input) public LinearRgb Convert(in Rgb input)
{ {
Vector3 vector = input.ToVector3(); var vector = input.ToVector3();
vector.X = input.WorkingSpace.Companding.Expand(vector.X); vector.X = input.WorkingSpace.Companding.Expand(vector.X);
vector.Y = input.WorkingSpace.Companding.Expand(vector.Y); vector.Y = input.WorkingSpace.Companding.Expand(vector.Y);
vector.Z = input.WorkingSpace.Companding.Expand(vector.Z); vector.Z = input.WorkingSpace.Companding.Expand(vector.Z);

16
src/ImageSharp/ColorSpaces/Conversion/Implementation/YCbCrAndRgbConverter.cs

@ -8,14 +8,18 @@ using System.Runtime.CompilerServices;
namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
{ {
/// <summary> /// <summary>
/// Color converter between YCbCr and Rgb /// Color converter between <see cref="YCbCr"/> and <see cref="Rgb"/>
/// See <see href="https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion"/> for formulas. /// See <see href="https://en.wikipedia.org/wiki/YCbCr#JPEG_conversion"/> for formulas.
/// </summary> /// </summary>
internal sealed class YCbCrAndRgbConverter : IColorConversion<YCbCr, Rgb>, IColorConversion<Rgb, YCbCr> internal sealed class YCbCrAndRgbConverter
{ {
private static readonly Vector3 MaxBytes = new Vector3(255F); private static readonly Vector3 MaxBytes = new Vector3(255F);
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="YCbCr"/> input to an instance of <see cref="Rgb"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public Rgb Convert(in YCbCr input) public Rgb Convert(in YCbCr input)
{ {
@ -30,7 +34,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation
return new Rgb(new Vector3(r, g, b) / MaxBytes); return new Rgb(new Vector3(r, g, b) / MaxBytes);
} }
/// <inheritdoc/> /// <summary>
/// Performs the conversion from the <see cref="Rgb"/> input to an instance of <see cref="YCbCr"/> type.
/// </summary>
/// <param name="input">The input color instance.</param>
/// <returns>The converted result</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public YCbCr Convert(in Rgb input) public YCbCr Convert(in Rgb input)
{ {

Loading…
Cancel
Save