PeachDrawing.Core

PeachDrawing.Core.ColorMatrix

ColorMatrix.IsChannelIndependent Property

Whether every output channel among R, G, B depends on only its own matching input channel (i.e. Linear has no off-diagonal coupling among the R/G/B/A inputs feeding the R/G/B outputs) - the exact condition under which this matrix is representable as a PDF ExtGState /TR transfer function (see the type-level remarks). Input alpha’s contribution to each of the R/G/B outputs is included in the check: a filter whose R/G/B output depends on input alpha could not be expressed as a transfer function either, since /TR only ever sees one color component’s own value, never alpha. The matrix’s own alpha OUTPUT (column 4 - System.Numerics.Matrix4x4.M14/System.Numerics.Matrix4x4.M24/ System.Numerics.Matrix4x4.M34/System.Numerics.Matrix4x4.M44) is not checked - /TR is a color-space transfer function and is never applied to alpha, so nothing about how this matrix would compute alpha bears on whether it fits. See Linear’s remarks for why the row is the input component and the column is the output component here.

public bool IsChannelIndependent { get; }

Property Value

System.Boolean