blob: 3b27fa010ead2b79cc919e28f0cb065ad6946b5c (
plain)
1
2
3
4
5
6
7
8
9
10
11
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 ),
)
}
|