Connector


A connector transforms colors from a source color space to a destination color space.

A source color space is connected to a destination color space using the color transform C computed from their respective transforms noted Tsrc and Tdst in the following equation:

See equation

The transform C shown above is only valid when the source and destination color spaces have the same profile connection space (PCS). We know that instances of ColorSpace always use CIE XYZ as their PCS but their white points might differ. When they do, we must perform a chromatic adaptation of the color spaces' transforms. To do so, we use the von Kries method described in the documentation of Adaptation, using the CIE standard illuminant D50 as the target white point.

Example of conversion from sRGB to DCI-P3:

val connector = ColorSpaces.Srgb.connect(ColorSpaces.DciP3);
val p3 = connector.transform(1.0f, 0.0f, 0.0f);
// p3 contains { 0.9473, 0.2740, 0.2076 }

Summary

Public functions

open @Size(min = 3) FloatArray
transform(v: @Size(min = 3) FloatArray)

Transforms the specified color from the source color space to a color in the destination color space.

Cmn
@Size(value = 3) FloatArray
transform(r: Float, g: Float, b: Float)

Transforms the specified color from the source color space to a color in the destination color space.

Cmn

Public properties

ColorSpace

Returns the destination color space this connector will convert to.

Cmn
RenderIntent

Returns the render intent this connector will use when mapping the source color space to the destination color space.

Cmn
ColorSpace

Returns the source color space this connector will convert from.

Cmn

Public functions

transform

open fun transform(v: @Size(min = 3) FloatArray): @Size(min = 3) FloatArray

Transforms the specified color from the source color space to a color in the destination color space.

Parameters
v: @Size(min = 3) FloatArray

A non-null array of 3 floats containing the value to transform and that will hold the result of the transform

Returns
@Size(min = 3) FloatArray

The v array passed as a parameter, containing the specified color transformed from the source space to the destination space

See also
transform

transform

fun transform(r: Float, g: Float, b: Float): @Size(value = 3) FloatArray

Transforms the specified color from the source color space to a color in the destination color space. This convenience method assumes a source color model with 3 components (typically RGB). To transform from color models with more than 3 components, such as CMYK, use transform instead.

Parameters
r: Float

The red component of the color to transform

g: Float

The green component of the color to transform

b: Float

The blue component of the color to transform

Returns
@Size(value = 3) FloatArray

A new array of 3 floats containing the specified color transformed from the source space to the destination space

See also
transform

Public properties

destination

val destinationColorSpace

Returns the destination color space this connector will convert to.

Returns
ColorSpace

A non-null instance of ColorSpace

See also
source

renderIntent

val renderIntentRenderIntent

Returns the render intent this connector will use when mapping the source color space to the destination color space.

Returns
RenderIntent

A non-null RenderIntent

See also
RenderIntent

source

val sourceColorSpace

Returns the source color space this connector will convert from.

Returns
ColorSpace

A non-null instance of ColorSpace

See also
destination