diff --git a/common/src/oklab.rs b/common/src/oklab.rs index 69c393b..df0c62c 100644 --- a/common/src/oklab.rs +++ b/common/src/oklab.rs @@ -67,34 +67,34 @@ impl Rgb { } pub fn linear_srgb_to_oklab(c: Rgb) -> OkLab { - let l = 0.4122214708 * c.r + 0.5363325363 * c.g + 0.0514459929 * c.b; - let m = 0.2119034982 * c.r + 0.6806995451 * c.g + 0.1073969566 * c.b; - let s = 0.0883024619 * c.r + 0.2817188376 * c.g + 0.6299787005 * c.b; + let l = 0.412_221_46 * c.r + 0.536_332_55 * c.g + 0.051_445_995 * c.b; + let m = 0.211_903_5 * c.r + 0.680_699_5 * c.g + 0.107_396_96 * c.b; + let s = 0.088_302_46 * c.r + 0.281_718_85 * c.g + 0.629_978_7 * c.b; - let l_ = l.cbrt(); - let m_ = m.cbrt(); - let s_ = s.cbrt(); + let l = l.cbrt(); + let m = m.cbrt(); + let s = s.cbrt(); OkLab { - l: 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_, - a: 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_, - b: 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_, + l: 0.210_454_26 * l + 0.793_617_8 * m - 0.004_072_047 * s, + a: 1.977_998_5 * l - 2.428_592_2 * m + 0.450_593_7 * s, + b: 0.025_904_037 * l + 0.782_771_77 * m - 0.808_675_77 * s, } } pub fn oklab_to_linear_srgb(c: OkLab) -> Rgb { - let l_ = c.l + 0.3963377774 * c.a + 0.2158037573 * c.b; - let m_ = c.l - 0.1055613458 * c.a - 0.0638541728 * c.b; - let s_ = c.l - 0.0894841775 * c.a - 1.2914855480 * c.b; + let l = c.l + 0.396_337_78 * c.a + 0.215_803_76 * c.b; + let m = c.l - 0.105_561_346 * c.a - 0.063_854_17 * c.b; + let s = c.l - 0.089_484_18 * c.a - 1.291_485_5 * c.b; - let l = l_ * l_ * l_; - let m = m_ * m_ * m_; - let s = s_ * s_ * s_; + let l = l * l * l; + let m = m * m * m; + let s = s * s * s; Rgb { - r: 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, - g: -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, - b: -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s, + r: 4.076_741_7 * l - 3.307_711_6 * m + 0.230_969_94 * s, + g: -1.268_438 * l + 2.609_757_4 * m - 0.341_319_38 * s, + b: -0.004_196_086_3 * l - 0.703_418_6 * m + 1.707_614_7 * s, } }