diff options
Diffstat (limited to 'src/color.rs')
| -rw-r--r-- | src/color.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/color.rs b/src/color.rs new file mode 100644 index 0000000..3b27fa0 --- /dev/null +++ b/src/color.rs @@ -0,0 +1,12 @@ +// TODO: avoid using float +pub fn yuv2rgb(y: u8, u: u8, v: u8) -> (u8, u8, u8){ + fn rc(v: f64) -> u8{ v.round().clamp(0., 255.) as u8 } + let y = y as f64; + let u = u as f64 - 128.; + let v = v as f64 - 128.; + ( + rc(y + 1.402*v), + rc(y - 0.344*u - 0.714*v), + rc(y + 1.772*u ), + ) +} |
