A library for color space conversions in MoonBit
moon add CAIMEOX/colorlet (h, s, v) = rgb2hsv(255.0F, 0.0F, 0.0F)
let (r, g, b) = hsl2rgb(240.0F, 100.0F, 50.0F)
let hex = rgb2hex(r, g, b) // "0000FF"// Name lookup
let rgb = name2rgb("rebeccapurple")
// Round‑trip through OKLab
let (l, a, b) = rgb2oklab(92.0F, 191.0F, 84.0F)
let (rr, gg, bb) = oklab2rgb(L, A, B)
// Hex to RGB
let (r2, g2, b2) = hex2rgb("#ABCDEF") // (171,205,239)
// XYZ ↔ Lab ↔ LCH
let (x, y, z) = rgb2xyz(255.0F, 255.0F, 255.0F)
let (l, a, b3) = xyz2lab(x, y, z)
let (_, c, h) = lab2lch(l, a, b3)| From | To | Function |
|---|---|---|
| RGB | HSV | rgb2hsv |
| RGB | HSL | rgb2hsl |
| RGB | CMYK | rgb2cmyk |
| RGB | Hex | rgb2hex |
| RGB | HWB | rgb2hwb |
| RGB | HCG | rgb2hcg |
| RGB | XYZ | rgb2xyz |
| RGB | Lab | rgb2lab |
| RGB | Gray% | rgb2gray |
| RGB | OKLab | rgb2oklab |
| RGB | Apple 16‑bit | rgb2apple |
| HSV | RGB | hsv2rgb |
| HSV | HSL | hsv2hsl |
| HSL | RGB | hsl2rgb |
| HSL | HSV | hsl2hsv |
| HWB | RGB | hwb2rgb |
| HCG | RGB | hcg2rgb |
| CMYK | RGB | cmyk2rgb |
| XYZ | RGB | xyz2rgb |
| XYZ | Lab | xyz2lab |
| Lab | XYZ | lab2xyz |
| Lab | LCH | lab2lch |
| LCH | Lab | lch2lab |
| OKLab | XYZ | oklab2xyz |
| OKLab | RGB | oklab2rgb |
| OKLab | OKLCH | oklab2oklch |
| OKLCH | OKLab | oklch2oklab |
| Gray% | RGB | gray2rgb |
| Hex | RGB | hex2rgb |
| Name | RGB | name2rgb (raises NameNotFound) |
| RGB | Name | rgb2keyword (optional) |
| Apple 16‑bit | RGB | apple2rgb |
moon testmoon test -uA library for color space conversions in MoonBit