[−][src]Function libwebp::WebPDecodeYUV
pub fn WebPDecodeYUV(
data: &[u8]
) -> Result<(u32, u32, u32, u32, WebpYuvBox), WebPSimpleError>
Decodes WebP images pointed to by data
to Y'UV format1.
1 Also named Y'CbCr. See: http://en.wikipedia.org/wiki/YCbCr
Return value
It retuns a tuple with the following data in this order:
- width
- height
- stride
- uv_stride
- a
WebpYuvBox
which contains the pointers to the Y, U and V planes.
The dimension of the U and V planes are both (width + 1) / 2
and (height + 1)/ 2
.
The Y buffer has a stride returned as stride
, while U and V
have a common stride returned as uv_stride
.
Errors
Returns Err
if data
doesn't contain a valid WebP image.
Examples
use libwebp::WebPDecodeYUV; let data: &[u8]; let (width, height, stride, uv_stride, buf) = WebPDecodeYUV(data).expect("Invalid WebP data"); assert!(width <= stride); assert!((width + 1) / 2 <= uv_stride); assert_eq!(buf.y().len(), stride as usize * height as usize); assert_eq!(buf.u().len(), uv_stride as usize * ((height as usize + 1) / 2)); assert_eq!(buf.v().len(), uv_stride as usize * ((height as usize + 1) / 2)); eprintln!( "top-left pixel: yuv({}, {}, {})", buf.y()[0], buf.u()[0], buf.v()[0], )