| ... | @@ -147,3 +147,15 @@ pub fn to_hsv(x: Self) color.HSV { | ... | @@ -147,3 +147,15 @@ pub fn to_hsv(x: Self) color.HSV { |
| 147 | const a = f.a; | 147 | const a = f.a; |
| 148 | return color.HSV.initHSVA(h, s, v, a); | 148 | return color.HSV.initHSVA(h, s, v, a); |
| 149 | } | 149 | } |
| | 150 | |
| | 151 | pub fn to_ycbcr(x: Self) color.YCbCr { |
| | 152 | // zig fmt: off |
| | 153 | const f = x.to_vec(); |
| | 154 | return color.YCbCr.from_vec(.{ |
| | 155 | ( 0.299 * f.r + 0.587 * f.g + 0.114 * f.b) + 0, |
| | 156 | (-0.1687 * f.r + -0.3313 * f.g + 0.5 * f.b) + 128, |
| | 157 | ( 0.5 * f.r + -0.4187 * f.g + -0.0813 * f.b) + 128, |
| | 158 | f.a, |
| | 159 | }); |
| | 160 | // zig fmt: on |
| | 161 | } |