Browse Source

Remove nullable disable from ColorSpace and Color

#2231
pull/2326/head
Stefan Nikolei 3 years ago
parent
commit
4605f664bc
  1. 5
      src/ImageSharp/Color/Color.cs
  2. 6
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.Adapt.cs
  3. 2
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.CieXyz.cs
  4. 4
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverter.cs
  5. 2
      src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs

5
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<Color>
{
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<Color>
}
/// <inheritdoc />
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);
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]

6
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);
}
/// <summary>
@ -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);

2
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;
/// <summary>
/// Converts a <see cref="CieLab"/> into a <see cref="CieXyz"/>.

4
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;

2
src/ImageSharp/ColorSpaces/Conversion/ColorSpaceConverterOptions.cs

@ -44,7 +44,7 @@ public class ColorSpaceConverterOptions
/// <summary>
/// Gets or sets the chromatic adaptation method used. When <value>null</value>, no adaptation will be performed.
/// </summary>
public IChromaticAdaptation ChromaticAdaptation { get; set; } = new VonKriesChromaticAdaptation();
public IChromaticAdaptation? ChromaticAdaptation { get; set; } = new VonKriesChromaticAdaptation();
/// <summary>
/// Gets or sets transformation matrix used in conversion to and from <see cref="Lms"/>.

Loading…
Cancel
Save