diff --git a/src/ImageSharp/Color/Color.cs b/src/ImageSharp/Color/Color.cs index 58bc77d14f..99a271bcf7 100644 --- a/src/ImageSharp/Color/Color.cs +++ b/src/ImageSharp/Color/Color.cs @@ -1,6 +1,5 @@ // Copyright (c) Six Labors. // Licensed under the Six Labors Split License. -#nullable disable using System.Numerics; using System.Runtime.CompilerServices; @@ -20,7 +19,7 @@ namespace SixLabors.ImageSharp; public readonly partial struct Color : IEquatable { private readonly Rgba64 data; - private readonly IPixel boxedHighPrecisionPixel; + private readonly IPixel? boxedHighPrecisionPixel; [MethodImpl(InliningOptions.ShortMethod)] private Color(byte r, byte g, byte b, byte a) @@ -317,7 +316,7 @@ public readonly partial struct Color : IEquatable } /// - public override bool Equals(object obj) => obj is Color other && this.Equals(other); + public override bool Equals(object? obj) => obj is Color other && this.Equals(other); /// [MethodImpl(InliningOptions.ShortMethod)] diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs index 52a9ef27ee..c4ce0350a6 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs @@ -32,7 +32,8 @@ public partial class ColorSpaceConverter return color; } - return this.chromaticAdaptation.Transform(color, sourceWhitePoint, targetWhitePoint); + // We know that chromaticAdaption is not null because performChromaticAdaption is checked + return this.chromaticAdaptation!.Transform(color, sourceWhitePoint, targetWhitePoint); } /// @@ -132,7 +133,8 @@ public partial class ColorSpaceConverter CieXyz unadapted = converterToXYZ.Convert(color); // Adaptation - CieXyz adapted = this.chromaticAdaptation.Transform(unadapted, color.WorkingSpace.WhitePoint, this.targetRgbWorkingSpace.WhitePoint); + // We know that chromaticAdaption is not null because performChromaticAdaption is checked + CieXyz adapted = this.chromaticAdaptation!.Transform(unadapted, color.WorkingSpace.WhitePoint, this.targetRgbWorkingSpace.WhitePoint); // Conversion back to RGB return this.cieXyzToLinearRgbConverter.Convert(adapted); diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs index ac1fa8ed0a..65298597c3 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs @@ -13,7 +13,7 @@ public partial class ColorSpaceConverter { private static readonly HunterLabToCieXyzConverter HunterLabToCieXyzConverter = new(); - private LinearRgbToCieXyzConverter linearRgbToCieXyzConverter; + private LinearRgbToCieXyzConverter? linearRgbToCieXyzConverter; /// /// Converts a into a . diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs index d7fa5f539a..52fa582356 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs @@ -1,7 +1,7 @@ // Copyright (c) Six Labors. // Licensed under the Six Labors Split License. -#nullable disable +using System.Diagnostics.CodeAnalysis; using System.Numerics; namespace SixLabors.ImageSharp.ColorSpaces.Conversion; @@ -19,7 +19,7 @@ public partial class ColorSpaceConverter private readonly CieXyz targetLabWhitePoint; private readonly CieXyz targetHunterLabWhitePoint; private readonly RgbWorkingSpace targetRgbWorkingSpace; - private readonly IChromaticAdaptation chromaticAdaptation; + private readonly IChromaticAdaptation? chromaticAdaptation; private readonly bool performChromaticAdaptation; private readonly CieXyzAndLmsConverter cieXyzAndLmsConverter; private readonly CieXyzToCieLabConverter cieXyzToCieLabConverter; diff --git a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs index 4fb5210670..9f576de726 100644 --- a/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs +++ b/src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs @@ -44,7 +44,7 @@ public class ColorSpaceConverterOptions /// /// Gets or sets the chromatic adaptation method used. When null, no adaptation will be performed. /// - public IChromaticAdaptation ChromaticAdaptation { get; set; } = new VonKriesChromaticAdaptation(); + public IChromaticAdaptation? ChromaticAdaptation { get; set; } = new VonKriesChromaticAdaptation(); /// /// Gets or sets transformation matrix used in conversion to and from .