diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs index ad6a69af96..a52207cb44 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs @@ -32,7 +32,7 @@ namespace ImageSharp.ColorSpaces.Conversion // Note the order here this is important. this.WhitePoint = DefaultWhitePoint; this.LmsAdaptationMatrix = CieXyzAndLmsConverter.DefaultTransformationMatrix; - this.ChromaticAdaptation = new VonKriesChromaticAdaptation(this.cachedCieXyzAndLmsConverter, this.cachedCieXyzAndLmsConverter); + this.ChromaticAdaptation = new VonKriesChromaticAdaptation(this.cachedCieXyzAndLmsConverter); this.TargetLuvWhitePoint = CieLuv.DefaultWhitePoint; this.TargetLabWhitePoint = CieLab.DefaultWhitePoint; this.TargetHunterLabWhitePoint = HunterLab.DefaultWhitePoint; diff --git a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs index 20b1fcadda..55d1d65a3c 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/VonKriesChromaticAdaptation.cs @@ -19,9 +19,7 @@ namespace ImageSharp.ColorSpaces.Conversion /// internal class VonKriesChromaticAdaptation : IChromaticAdaptation { - private readonly IColorConversion conversionToLms; - - private readonly IColorConversion conversionToXyz; + private readonly CieXyzAndLmsConverter converter; /// /// Initializes a new instance of the class. @@ -43,27 +41,13 @@ namespace ImageSharp.ColorSpaces.Conversion { } - /// - /// Initializes a new instance of the class. - /// - /// The color converter. - /// The color converter. - public VonKriesChromaticAdaptation(IColorConversion conversionToLms, IColorConversion conversionToCieXyz) - { - Guard.NotNull(conversionToLms, nameof(conversionToLms)); - Guard.NotNull(conversionToCieXyz, nameof(conversionToCieXyz)); - - this.conversionToLms = conversionToLms; - this.conversionToXyz = conversionToCieXyz; - } - /// /// Initializes a new instance of the class. /// /// The color converter - private VonKriesChromaticAdaptation(CieXyzAndLmsConverter converter) - : this(converter, converter) + public VonKriesChromaticAdaptation(CieXyzAndLmsConverter converter) { + this.converter = converter; } /// @@ -78,14 +62,14 @@ namespace ImageSharp.ColorSpaces.Conversion return sourceColor; } - Lms sourceColorLms = this.conversionToLms.Convert(sourceColor); - Lms sourceWhitePointLms = this.conversionToLms.Convert(sourceWhitePoint); - Lms targetWhitePointLms = this.conversionToLms.Convert(targetWhitePoint); + Lms sourceColorLms = this.converter.Convert(sourceColor); + Lms sourceWhitePointLms = this.converter.Convert(sourceWhitePoint); + Lms targetWhitePointLms = this.converter.Convert(targetWhitePoint); var vector = new Vector3(targetWhitePointLms.L / sourceWhitePointLms.L, targetWhitePointLms.M / sourceWhitePointLms.M, targetWhitePointLms.S / sourceWhitePointLms.S); var targetColorLms = new Lms(Vector3.Multiply(vector, sourceColorLms.Vector)); - return this.conversionToXyz.Convert(targetColorLms); + return this.converter.Convert(targetColorLms); } } } \ No newline at end of file