diff --git a/sRGB.zig b/sRGB.zig index 946d6552ca29bbbb13750103dce7be9bc18bdcd9..ba51ab2b945ba73606d1ff99dd0f0e7fd4f5c8f4 100644 --- a/sRGB.zig +++ b/sRGB.zig @@ -147,3 +147,15 @@ pub fn to_hsv(x: Self) color.HSV { const a = f.a; return color.HSV.initHSVA(h, s, v, a); } + +pub fn to_ycbcr(x: Self) color.YCbCr { + // zig fmt: off + const f = x.to_vec(); + return color.YCbCr.from_vec(.{ + ( 0.299 * f.r + 0.587 * f.g + 0.114 * f.b) + 0, + (-0.1687 * f.r + -0.3313 * f.g + 0.5 * f.b) + 128, + ( 0.5 * f.r + -0.4187 * f.g + -0.0813 * f.b) + 128, + f.a, + }); + // zig fmt: on +}