From 35d623aa35919abcb40143797f25e12bfb2329ae Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 20 Dec 2017 17:30:34 +1100 Subject: [PATCH] More cleanup --- .../Conversion/ColorSpaceConverter.Adapt.cs | 67 +++++++------------ .../Conversion/ColorSpaceConverter.CieLab.cs | 25 ++++--- .../Conversion/ColorSpaceConverter.CieLch.cs | 24 +++---- .../ColorSpaceConverter.CieLchuv.cs | 24 +++---- .../Conversion/ColorSpaceConverter.Hsl.cs | 1 - .../Conversion/ColorSpaceConverter.Hsv.cs | 1 - .../Conversion/ColorSpaceConverter.Lms.cs | 2 - .../Conversion/ColorSpaceConverter.Rgb.cs | 6 +- .../Conversion/IChromaticAdaptation.cs | 2 - .../Implementation/CieXyzToCieLuvConverter.cs | 1 + .../CieXyzToLinearRgbConverter.cs | 10 ++- .../Implementation/GammaCompanding.cs | 7 +- .../LinearRgbAndCieXyzConverterBase.cs | 2 +- .../LinearRgbToCieXyzConverter.cs | 2 +- .../Conversion/VonKriesChromaticAdaptation.cs | 1 - .../Colorspaces/RgbAndCmykConversionTest.cs | 8 +-- .../ImageSharp.Tests/ImageSharp.Tests.csproj | 6 +- 17 files changed, 87 insertions(+), 102 deletions(-) diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs index 2052b083c..0f62046a6 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs @@ -2,7 +2,7 @@ // Licensed under the Apache License, Version 2.0. using System; -using SixLabors.ImageSharp.ColorSpaces; +using System.Runtime.CompilerServices; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion @@ -23,11 +23,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); Guard.NotNull(sourceWhitePoint, nameof(sourceWhitePoint)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); return this.ChromaticAdaptation.Transform(color, sourceWhitePoint, this.WhitePoint); } @@ -40,18 +36,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public CieLab Adapt(CieLab color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WhitePoint.Equals(this.TargetLabWhitePoint)) { return color; } - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -63,18 +55,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public CieLch Adapt(CieLch color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WhitePoint.Equals(this.TargetLabWhitePoint)) { return color; } - CieLab labColor = this.ToCieLab(color); + var labColor = this.ToCieLab(color); return this.ToCieLch(labColor); } @@ -86,18 +74,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public CieLchuv Adapt(CieLchuv color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WhitePoint.Equals(this.TargetLabWhitePoint)) { return color; } - CieLuv luvColor = this.ToCieLuv(color); + var luvColor = this.ToCieLuv(color); return this.ToCieLchuv(luvColor); } @@ -109,18 +93,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public CieLuv Adapt(CieLuv color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WhitePoint.Equals(this.TargetLuvWhitePoint)) { return color; } - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLuv(xyzColor); } @@ -132,18 +112,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public HunterLab Adapt(HunterLab color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WhitePoint.Equals(this.TargetHunterLabWhitePoint)) { return color; } - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToHunterLab(xyzColor); } @@ -155,11 +131,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion public LinearRgb Adapt(LinearRgb color) { Guard.NotNull(color, nameof(color)); - - if (!this.IsChromaticAdaptationPerformed) - { - throw new InvalidOperationException("Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."); - } + this.CheckChromaticAdaptation(); if (color.WorkingSpace.Equals(this.TargetRgbWorkingSpace)) { @@ -187,9 +159,20 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - LinearRgb linearInput = this.ToLinearRgb(color); + var linearInput = this.ToLinearRgb(color); LinearRgb linearOutput = this.Adapt(linearInput); return this.ToRgb(linearOutput); } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private void CheckChromaticAdaptation() + { + const string NoAdapterMessage = "Cannot perform chromatic adaptation, provide a chromatic adaptation method and white point."; + + if (!this.IsChromaticAdaptationPerformed) + { + throw new InvalidOperationException(NoAdapterMessage); + } + } } } \ No newline at end of file diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs index ddfbc2ff7..2720b81fe 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLab.cs @@ -1,7 +1,6 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.ColorSpaces; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion @@ -46,7 +45,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -59,7 +58,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -72,7 +71,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -91,7 +90,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion : color; // Conversion - CieXyzToCieLabConverter converter = new CieXyzToCieLabConverter(this.TargetLabWhitePoint); + var converter = new CieXyzToCieLabConverter(this.TargetLabWhitePoint); return converter.Convert(adapted); } @@ -104,7 +103,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -117,7 +116,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -130,7 +129,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -143,7 +142,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -156,7 +155,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -169,7 +168,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -182,7 +181,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } @@ -195,7 +194,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLab(xyzColor); } } diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs index 9854d8e1b..ad0d4e311 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLch.cs @@ -40,7 +40,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -53,7 +53,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -66,7 +66,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -79,7 +79,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieLab labColor = this.ToCieLab(color); + var labColor = this.ToCieLab(color); return this.ToCieLch(labColor); } @@ -92,7 +92,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -105,7 +105,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -118,7 +118,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -131,7 +131,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -144,7 +144,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -157,7 +157,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -170,7 +170,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } @@ -183,7 +183,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLch(xyzColor); } } diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs index 0186ba7c2..36e504fb1 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieLchuv.cs @@ -24,7 +24,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -37,7 +37,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -66,7 +66,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -79,7 +79,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieLab labColor = this.ToCieLab(color); + var labColor = this.ToCieLab(color); return this.ToCieLchuv(labColor); } @@ -92,7 +92,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -105,7 +105,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -118,7 +118,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -131,7 +131,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -144,7 +144,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -157,7 +157,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -170,7 +170,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } @@ -183,7 +183,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion { Guard.NotNull(color, nameof(color)); - CieXyz xyzColor = this.ToCieXyz(color); + var xyzColor = this.ToCieXyz(color); return this.ToCieLchuv(xyzColor); } } diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs index 35d784c4a..7099d98e4 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsl.cs @@ -1,7 +1,6 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.ColorSpaces; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs index e47ab45ef..b0099977c 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Hsv.cs @@ -1,7 +1,6 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.ColorSpaces; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs index ac3adee63..872b79296 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Lms.cs @@ -1,8 +1,6 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.ColorSpaces; - namespace SixLabors.ImageSharp.ColorSpaces.Conversion { /// diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs index 5b3613adb..b0d57f68b 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Rgb.cs @@ -181,11 +181,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion Guard.NotNull(color, nameof(color)); // Conversion - Rgb rgb = YCbCrAndRgbConverter.Convert(color); - - // Adaptation - // TODO: Check this! - return rgb.WorkingSpace.Equals(this.TargetRgbWorkingSpace) ? rgb : this.Adapt(rgb); + return YCbCrAndRgbConverter.Convert(color); } } } \ No newline at end of file diff --git a/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs b/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs index c5d91f9a0..3e78d3a91 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/IChromaticAdaptation.cs @@ -1,8 +1,6 @@ // Copyright (c) Six Labors and contributors. // Licensed under the Apache License, Version 2.0. -using SixLabors.ImageSharp.ColorSpaces; - namespace SixLabors.ImageSharp.ColorSpaces.Conversion { /// diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs index 5f395eb0c..be4c5b04c 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToCieLuvConverter.cs @@ -91,6 +91,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// /// The whitepoint /// The + [MethodImpl(MethodImplOptions.AggressiveInlining)] private static float ComputeVp(CieXyz input) { return (9 * input.Y) / (input.X + (15 * input.Y) + (3 * input.Z)); diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs index 5c18cb8e1..449afcc60 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/CieXyzToLinearRgbConverter.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. using System.Numerics; +using System.Runtime.CompilerServices; namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation { @@ -15,6 +16,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// /// Initializes a new instance of the class. /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public CieXyzToLinearRgbConverter() : this(Rgb.DefaultWorkingSpace) { @@ -24,6 +26,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// Initializes a new instance of the class. /// /// The target working space. + [MethodImpl(MethodImplOptions.AggressiveInlining)] public CieXyzToLinearRgbConverter(IRgbWorkingSpace workingSpace) { this.TargetWorkingSpace = workingSpace; @@ -33,9 +36,14 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// /// Gets the target working space /// - public IRgbWorkingSpace TargetWorkingSpace { get; } + public IRgbWorkingSpace TargetWorkingSpace + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + } /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public LinearRgb Convert(CieXyz input) { DebugGuard.NotNull(input, nameof(input)); diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs index aadb0d342..3bea562ec 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/GammaCompanding.cs @@ -19,6 +19,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// Initializes a new instance of the class. /// /// The gamma value. + [MethodImpl(MethodImplOptions.AggressiveInlining)] public GammaCompanding(float gamma) { this.Gamma = gamma; @@ -27,7 +28,11 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation /// /// Gets the gamma value /// - public float Gamma { get; } + public float Gamma + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + } /// [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs index 3ba0761c9..2b21a604f 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbAndCieXyzConverterBase.cs @@ -48,7 +48,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation M44 = 1F }; - Matrix4x4.Invert(xyzMatrix, out var inverseXyzMatrix); + Matrix4x4.Invert(xyzMatrix, out Matrix4x4 inverseXyzMatrix); var vector = Vector3.Transform(workingSpace.WhitePoint.Vector, inverseXyzMatrix); diff --git a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs index cac188853..449b3b37b 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/Implementation/LinearRgbToCieXyzConverter.cs @@ -39,7 +39,7 @@ namespace SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation public CieXyz Convert(LinearRgb input) { DebugGuard.NotNull(input, nameof(input)); - Guard.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."); var vector = Vector3.Transform(input.Vector, this.conversionMatrix); return new CieXyz(vector); diff --git a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs index 3564bc1de..20f75f1ae 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. using System.Numerics; -using SixLabors.ImageSharp.ColorSpaces; using SixLabors.ImageSharp.ColorSpaces.Conversion.Implementation; namespace SixLabors.ImageSharp.ColorSpaces.Conversion diff --git a/tests/ImageSharp.Tests/Colorspaces/RgbAndCmykConversionTest.cs b/tests/ImageSharp.Tests/Colorspaces/RgbAndCmykConversionTest.cs index 6c3d579b4..bc4cb1106 100644 --- a/tests/ImageSharp.Tests/Colorspaces/RgbAndCmykConversionTest.cs +++ b/tests/ImageSharp.Tests/Colorspaces/RgbAndCmykConversionTest.cs @@ -32,10 +32,10 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces public void Convert_Cmyk_To_Rgb(float c, float m, float y, float k, float r, float g, float b) { // Arrange - Cmyk input = new Cmyk(c, m, y, k); + var input = new Cmyk(c, m, y, k); // Act - Rgb output = Converter.ToRgb(input); + var output = Converter.ToRgb(input); // Assert Assert.Equal(Rgb.DefaultWorkingSpace, output.WorkingSpace); @@ -54,10 +54,10 @@ namespace SixLabors.ImageSharp.Tests.Colorspaces public void Convert_Rgb_To_Cmyk(float r, float g, float b, float c, float m, float y, float k) { // Arrange - Rgb input = new Rgb(r, g, b); + var input = new Rgb(r, g, b); // Act - Cmyk output = Converter.ToCmyk(input); + var output = Converter.ToCmyk(input); // Assert Assert.Equal(c, output.C, FloatRoundingComparer); diff --git a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj index 2f45e4c83..eb60aa5fe 100644 --- a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj +++ b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj @@ -17,9 +17,9 @@ - - - + + +