Skip to content

Commit bf13f00

Browse files
Naming and fixes
1 parent a7edf1b commit bf13f00

35 files changed

+382
-118
lines changed

src/ImageSharp/ColorProfiles/CieLab.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.ColorProfiles;
1616
/// D50 standard illuminant.
1717
/// Used when reference white is not specified explicitly.
1818
/// </summary>
19-
public static readonly CieXyz DefaultWhitePoint = Illuminants.D50;
19+
public static readonly CieXyz DefaultWhitePoint = KnownIlluminants.D50;
2020

2121
/// <summary>
2222
/// Initializes a new instance of the <see cref="CieLab"/> struct.

src/ImageSharp/ColorProfiles/ColorConversionOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ public class ColorConversionOptions
2828
/// <summary>
2929
/// Gets the source white point used for chromatic adaptation in conversions from/to XYZ color space.
3030
/// </summary>
31-
public CieXyz WhitePoint { get; init; } = Illuminants.D50;
31+
public CieXyz WhitePoint { get; init; } = KnownIlluminants.D50;
3232

3333
/// <summary>
3434
/// Gets the destination white point used for chromatic adaptation in conversions from/to XYZ color space.
3535
/// </summary>
36-
public CieXyz TargetWhitePoint { get; init; } = Illuminants.D50;
36+
public CieXyz TargetWhitePoint { get; init; } = KnownIlluminants.D50;
3737

3838
/// <summary>
3939
/// Gets the source working space used for companding in conversions from/to XYZ color space.

src/ImageSharp/ColorProfiles/ColorProfileConverter.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,19 @@ public ColorProfileConverter(ColorConversionOptions options)
2727
/// Gets the color profile conversion options.
2828
/// </summary>
2929
public ColorConversionOptions Options { get; }
30+
31+
internal (CieXyz From, CieXyz To) GetChromaticAdaptionWhitePoints<TFrom, TTo>()
32+
where TFrom : struct, IColorProfile
33+
where TTo : struct, IColorProfile
34+
{
35+
CieXyz sourceWhitePoint = TFrom.GetChromaticAdaptionWhitePointSource() == ChromaticAdaptionWhitePointSource.WhitePoint
36+
? this.Options.WhitePoint
37+
: this.Options.RgbWorkingSpace.WhitePoint;
38+
39+
CieXyz targetWhitePoint = TTo.GetChromaticAdaptionWhitePointSource() == ChromaticAdaptionWhitePointSource.WhitePoint
40+
? this.Options.TargetWhitePoint
41+
: this.Options.TargetRgbWorkingSpace.WhitePoint;
42+
43+
return (sourceWhitePoint, targetWhitePoint);
44+
}
3045
}

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieLab.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Six Labors.
1+
// Copyright (c) Six Labors.
22
// Licensed under the Six Labors Split License.
33

44
using System.Buffers;
@@ -19,7 +19,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1919
CieXyz pcsFromB = pcsFromA.ToProfileConnectingSpace(options);
2020

2121
// Adapt to target white point
22-
pcsFromB = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFromB);
22+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
23+
pcsFromB = VonKriesChromaticAdaptation.Transform(in pcsFromB, whitePoints, options.AdaptationMatrix);
2324

2425
// Convert between PCS
2526
CieLab pcsTo = CieLab.FromProfileConnectingSpace(options, in pcsFromB);
@@ -44,7 +45,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
4445
CieLab.ToProfileConnectionSpace(options, pcsFromTo, pcsFrom);
4546

4647
// Adapt to target white point
47-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFrom, pcsFrom);
48+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
49+
VonKriesChromaticAdaptation.Transform(pcsFrom, pcsFrom, whitePoints, options.AdaptationMatrix);
4850

4951
// Convert between PCS.
5052
CieLab.FromProfileConnectionSpace(options, pcsFrom, pcsFromTo);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabCieXyz.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
2121
CieXyz pcsTo = pcsFrom.ToProfileConnectingSpace(options);
2222

2323
// Adapt to target white point
24-
pcsTo = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsTo);
24+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
25+
pcsTo = VonKriesChromaticAdaptation.Transform(in pcsTo, whitePoints, options.AdaptationMatrix);
2526

2627
// Convert to output from PCS
2728
return TTo.FromProfileConnectingSpace(options, pcsTo);
@@ -44,7 +45,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
4445
CieLab.ToProfileConnectionSpace(options, pcsFrom, pcsTo);
4546

4647
// Adapt to target white point
47-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsTo, pcsTo);
48+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
49+
VonKriesChromaticAdaptation.Transform(pcsTo, pcsTo, whitePoints, options.AdaptationMatrix);
4850

4951
// Convert to output from PCS
5052
TTo.FromProfileConnectionSpace(options, pcsTo, destination);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieLabRgb.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1919
CieXyz pcsFromB = pcsFromA.ToProfileConnectingSpace(options);
2020

2121
// Adapt to target white point
22-
pcsFromB = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFromB);
22+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
23+
pcsFromB = VonKriesChromaticAdaptation.Transform(in pcsFromB, whitePoints, options.AdaptationMatrix);
2324

2425
// Convert between PCS
2526
Rgb pcsTo = Rgb.FromProfileConnectingSpace(options, in pcsFromB);
@@ -44,7 +45,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
4445
CieLab.ToProfileConnectionSpace(options, pcsFromA, pcsFromB);
4546

4647
// Adapt to target white point
47-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFromB, pcsFromB);
48+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
49+
VonKriesChromaticAdaptation.Transform(pcsFromB, pcsFromB, whitePoints, options.AdaptationMatrix);
4850

4951
// Convert between PCS.
5052
using IMemoryOwner<Rgb> pcsToOwner = options.MemoryAllocator.Allocate<Rgb>(source.Length);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieLab.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1818
CieXyz pcsFrom = source.ToProfileConnectingSpace(options);
1919

2020
// Adapt to target white point
21-
pcsFrom = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFrom);
21+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
22+
pcsFrom = VonKriesChromaticAdaptation.Transform(in pcsFrom, whitePoints, options.AdaptationMatrix);
2223

2324
// Convert between PCS
2425
CieLab pcsTo = CieLab.FromProfileConnectingSpace(options, in pcsFrom);
@@ -39,7 +40,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
3940
TFrom.ToProfileConnectionSpace(options, source, pcsFrom);
4041

4142
// Adapt to target white point
42-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFrom, pcsFrom);
43+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
44+
VonKriesChromaticAdaptation.Transform(pcsFrom, pcsFrom, whitePoints, options.AdaptationMatrix);
4345

4446
// Convert between PCS.
4547
using IMemoryOwner<CieLab> pcsToOwner = options.MemoryAllocator.Allocate<CieLab>(source.Length);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzCieXyz.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1818
CieXyz pcsFrom = source.ToProfileConnectingSpace(options);
1919

2020
// Adapt to target white point
21-
pcsFrom = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFrom);
21+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
22+
pcsFrom = VonKriesChromaticAdaptation.Transform(in pcsFrom, whitePoints, options.AdaptationMatrix);
2223

2324
// Convert to output from PCS
2425
return TTo.FromProfileConnectingSpace(options, pcsFrom);
@@ -36,7 +37,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
3637
TFrom.ToProfileConnectionSpace(options, source, pcsFrom);
3738

3839
// Adapt to target white point
39-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFrom, pcsFrom);
40+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
41+
VonKriesChromaticAdaptation.Transform(pcsFrom, pcsFrom, whitePoints, options.AdaptationMatrix);
4042

4143
// Convert to output from PCS
4244
TTo.FromProfileConnectionSpace(options, pcsFrom, destination);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsCieXyzRgb.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Six Labors.
1+
// Copyright (c) Six Labors.
22
// Licensed under the Six Labors Split License.
33

44
using System.Buffers;
@@ -18,7 +18,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1818
CieXyz pcsFrom = source.ToProfileConnectingSpace(options);
1919

2020
// Adapt to target white point
21-
pcsFrom = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFrom);
21+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
22+
pcsFrom = VonKriesChromaticAdaptation.Transform(in pcsFrom, whitePoints, options.AdaptationMatrix);
2223

2324
// Convert between PCS
2425
Rgb pcsTo = Rgb.FromProfileConnectingSpace(options, in pcsFrom);
@@ -39,7 +40,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
3940
TFrom.ToProfileConnectionSpace(options, source, pcsFrom);
4041

4142
// Adapt to target white point
42-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFrom, pcsFrom);
43+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
44+
VonKriesChromaticAdaptation.Transform(pcsFrom, pcsFrom, whitePoints, options.AdaptationMatrix);
4345

4446
// Convert between PCS.
4547
using IMemoryOwner<Rgb> pcsToOwner = options.MemoryAllocator.Allocate<Rgb>(source.Length);

src/ImageSharp/ColorProfiles/ColorProfileConverterExtensionsRgbCieLab.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public static TTo Convert<TFrom, TTo>(this ColorProfileConverter converter, TFro
1919
CieXyz pcsFromB = pcsFromA.ToProfileConnectingSpace(options);
2020

2121
// Adapt to target white point
22-
pcsFromB = VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, in pcsFromB);
22+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
23+
pcsFromB = VonKriesChromaticAdaptation.Transform(in pcsFromB, whitePoints, options.AdaptationMatrix);
2324

2425
// Convert between PCS
2526
CieLab pcsTo = CieLab.FromProfileConnectingSpace(options, in pcsFromB);
@@ -44,7 +45,8 @@ public static void Convert<TFrom, TTo>(this ColorProfileConverter converter, Rea
4445
Rgb.ToProfileConnectionSpace(options, pcsFromA, pcsFromB);
4546

4647
// Adapt to target white point
47-
VonKriesChromaticAdaptation.Transform<TFrom, TTo>(options, pcsFromB, pcsFromB);
48+
(CieXyz From, CieXyz To) whitePoints = converter.GetChromaticAdaptionWhitePoints<TFrom, TTo>();
49+
VonKriesChromaticAdaptation.Transform(pcsFromB, pcsFromB, whitePoints, options.AdaptationMatrix);
4850

4951
// Convert between PCS.
5052
using IMemoryOwner<CieLab> pcsToOwner = options.MemoryAllocator.Allocate<CieLab>(source.Length);

0 commit comments

Comments
 (0)