@@ -131,23 +131,18 @@ public static void FromScaledVector4(ReadOnlySpan<Vector4> source, Span<YccK> de
131131 /// <inheritdoc/>
132132 public Rgb ToProfileConnectingSpace ( ColorConversionOptions options )
133133 {
134- Matrix4x4 m = options . YCbCrMatrix . Inverse ;
135- Vector3 offset = options . YCbCrMatrix . Offset ;
134+ Matrix4x4 m = options . TransposedYCbCrMatrix . Inverse ;
135+ Vector3 offset = options . TransposedYCbCrMatrix . Offset ;
136136 Vector3 normalized = this . AsVector3Unsafe ( ) - offset ;
137137
138- float r = Vector3 . Dot ( normalized , new Vector3 ( m . M11 , m . M12 , m . M13 ) ) ;
139- float g = Vector3 . Dot ( normalized , new Vector3 ( m . M21 , m . M22 , m . M23 ) ) ;
140- float b = Vector3 . Dot ( normalized , new Vector3 ( m . M31 , m . M32 , m . M33 ) ) ;
141-
142- Vector3 rgb = new Vector3 ( r , g , b ) * ( 1F - this . K ) ;
143- return Rgb . FromScaledVector3 ( rgb ) ;
138+ return Rgb . FromScaledVector3 ( Vector3 . Transform ( normalized , m ) * ( 1F - this . K ) ) ;
144139 }
145140
146141 /// <inheritdoc/>
147142 public static YccK FromProfileConnectingSpace ( ColorConversionOptions options , in Rgb source )
148143 {
149- Matrix4x4 m = options . YCbCrMatrix . Forward ;
150- Vector3 offset = options . YCbCrMatrix . Offset ;
144+ Matrix4x4 m = options . TransposedYCbCrMatrix . Forward ;
145+ Vector3 offset = options . TransposedYCbCrMatrix . Offset ;
151146
152147 Vector3 rgb = source . AsVector3Unsafe ( ) ;
153148 float k = 1F - MathF . Max ( rgb . X , MathF . Max ( rgb . Y , rgb . Z ) ) ;
@@ -158,12 +153,7 @@ public static YccK FromProfileConnectingSpace(ColorConversionOptions options, in
158153 }
159154
160155 rgb /= 1F - k ;
161-
162- float y = Vector3 . Dot ( rgb , new Vector3 ( m . M11 , m . M12 , m . M13 ) ) ;
163- float cb = Vector3 . Dot ( rgb , new Vector3 ( m . M21 , m . M22 , m . M23 ) ) ;
164- float cr = Vector3 . Dot ( rgb , new Vector3 ( m . M31 , m . M32 , m . M33 ) ) ;
165-
166- return new YccK ( new Vector4 ( y , cb , cr , k ) + new Vector4 ( offset , 0F ) ) ;
156+ return new YccK ( new Vector4 ( Vector3 . Transform ( rgb , m ) , k ) + new Vector4 ( offset , 0F ) ) ;
167157 }
168158
169159 /// <inheritdoc/>
0 commit comments