Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

RGBfromXYZ

Convert XYZ or Linear RGB to Signal RGB


Description

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

Usage

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

See Also

Examples

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

Standard and User-Defined RGB Color Spaces, with Conversion Between RGB and CIE XYZ

v1.3-0
GPL (>= 3)
Authors
Glenn Davis [aut,cre]
Initial release
2019-12-10

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.