RGBfromXYZ: Convert XYZ or Linear RGB to Signal RGB

Description Usage Arguments Value References See Also Examples

View source: R/conversion.R

Description

Convert XYZ or Linear RGB to Signal RGB, multiple RGB spaces are available

Usage

1
2
3
RGBfromXYZ( XYZ, space='sRGB', which='scene', TF=NULL, maxSignal=1 ) 

SignalRGBfromLinearRGB( RGB, space='sRGB', which='scene', TF=NULL, maxSignal=1 )

Arguments

XYZ

a numeric Nx3 matrix with CIE XYZ coordinates in the rows, or a vector that can be converted to such a matrix, by row. The XYZ are assumed to be viewed under the white-point of the given RGB space.

RGB

a numeric Nx3 matrix with linear RGB coordinates in the rows, or a vector that can be converted to such a matrix, by row. The RGB may be outside the corresponding domain box (either scene or display), see Details.

space

the name of an installed RGB space. The name matching is partial and case-insensitive.

which

the input linear RGB - either 'scene' or 'display'.

TF

if not NULL, TF is a TransferFunction that overrides the appropriate transfer function of space. TF can also be a positive number. If TF=1, then TF is set to identity.TF, so the returned RGB values are actually linear, and they are not clamped to the appropriate domain box (see Value). If TF!=1 it is used to create either power.EOTF() or power.OETF() as approriate. If TF is not NULL in SignalRGBfromLinearRGB(), then space is ignored.

maxSignal

maximum value of non-linear RGB. Other common values are 100, 255, 1023, 4095, and 65535. Even when 1, they are still taken to be non-linear Signal values.

Value

a data.frame with N rows and these columns

RGB

signal RGB. If TF is not the identity, all input linear RGB values are clamped to the appropriate domain box, which implies that the signal RGBs are inside the cube [0,maxSignal]^3. Values are not rounded.

OutOfGamut

logical vector, TRUE means the input linear RGB was outside the domain box before clamping it.

In case of error, the functions return NULL.

References

Wikipedia. RGB color space. https://en.wikipedia.org/wiki/RGB_color_space

See Also

XYZfromRGB(), LinearRGBfromSignalRGB(), installRGB(), identity.TF

Examples

1
2
3
4
RGBfromXYZ( c(80.310897,90.306510,84.613450, 100,100,100)/100, max=255 )
##       RGB.R    RGB.G    RGB.B OutOfGamut
##  1 230.1676 249.4122 225.2472      FALSE
##  2 255.0000 249.1125 244.4704       TRUE

spacesRGB documentation built on Dec. 11, 2021, 9:58 a.m.