module

Opal::ColorSpaces

Color space conversion engine providing exact transformations between sRGB, CIE XYZ (D65), CIELAB (Lab*), Oklab / Oklch, CMYK, HSL, and HSV.

Constants

D65_X = 0.95047

D65 standard illuminant reference white points (2° standard observer)

D65_Y = 1.00000
D65_Z = 1.08883

Class methods

cmyk_to_rgb(c : Float64, m : Float64, y : Float64, k : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts CMYK [0.0..1.0] to sRGB [0..255]

Source
hsl_to_rgb(h : Float64, s : Float64, l : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts HSL (H in [0..360°], S in [0.0..1.0], L in [0.0..1.0]) to sRGB [0..255]

Source
hsv_to_rgb(h : Float64, s : Float64, v : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts HSV (H in [0..360°], S in [0.0..1.0], V in [0.0..1.0]) to sRGB [0..255]

Source
lab_to_rgb(l : Float64, a : Float64, b : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts CIELAB (L*, a*, b*) to sRGB [0..255]

Source
linear_to_srgb(c : Float64) : Float64

Converts linear RGB [0.0..1.0] to standard sRGB [0.0..1.0]

Source
oklab_to_rgb(l : Float64, a : Float64, b : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts Oklab (L, a, b) to sRGB [0..255]

Source
oklch_to_rgb(l : Float64, c : Float64, h : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts Oklch (L, C, h) to sRGB [0..255]

Source
rgb_to_cmyk(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64, Float64)

Converts sRGB [0..255] to CMYK [0.0..1.0]

Source
rgb_to_hsl(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to HSL: H in [0..360°], S in [0.0..1.0], L in [0.0..1.0]

Source
rgb_to_hsv(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to HSV: H in [0..360°], S in [0.0..1.0], V in [0.0..1.0]

Source
rgb_to_lab(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to CIELAB: L* in [0..100], a* in [-128..127], b* in [-128..127]

Source
rgb_to_oklab(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to Oklab: L in [0.0..1.0], a in [-0.4..0.4], b in [-0.4..0.4]

Source
rgb_to_oklch(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to Oklch: L in [0.0..1.0], C in [0.0..0.4], h in [0.0..360.0°]

Source
rgb_to_xyz(r : Int, g : Int, b : Int) : Tuple(Float64, Float64, Float64)

Converts sRGB [0..255] to CIE XYZ [0.0..1.0, 0.0..1.0, 0.0..1.0]

Source
srgb_to_linear(c : Float64) : Float64

Converts standard sRGB [0..255] to linear RGB [0.0..1.0]

Source
xyz_to_rgb(x : Float64, y : Float64, z : Float64) : Tuple(UInt8, UInt8, UInt8)

Converts CIE XYZ to sRGB [0..255]

Source