[][src]Function libwebp::WebPDecodeYUVInto

pub fn WebPDecodeYUVInto(
    data: &[u8],
    luma: &mut [u8],
    luma_stride: u32,
    u: &mut [u8],
    u_stride: u32,
    v: &mut [u8],
    v_stride: u32
) -> Result<(), WebPSimpleError>

A variant of WebPDecodeYUVInto that operates directly into pre-allocated buffers.

Errors

Returns Err if data doesn't contain a valid WebP image, or any of the buffers is too small.

Examples

use libwebp::{WebPGetInfo, WebPDecodeYUVInto};

let data: &[u8];

let (width, height) = WebPGetInfo(data).expect("Invalid WebP header");
let luma_stride = width;
let u_stride = (width + 1) / 2;
let v_stride = (width + 1) / 2;
let mut luma = vec![0; luma_stride as usize * height as usize];
let mut u = vec![0; u_stride as usize * ((height + 1) / 2) as usize];
let mut v = vec![0; v_stride as usize * ((height + 1) / 2) as usize];

WebPDecodeYUVInto(
    data,
    &mut luma,
    luma_stride,
    &mut u,
    u_stride,
    &mut v,
    v_stride,
).expect("Invalid WebP header");
eprintln!(
    "top-left pixel: yuv({}, {}, {})",
    luma[0],
    u[0],
    v[0],
)