Function libwebp::WebPDecodeRGBAInto
source · pub fn WebPDecodeRGBAInto(
data: &[u8],
output_buffer: &mut [u8],
output_stride: u32
) -> Result<(), WebPSimpleError>Expand description
Decodes WebP images pointed to by data and writes RGBA samples to
output_buffer.
The parameter ‘output_stride’ specifies the distance (in bytes)
between scanlines. Hence, output_buffer.len() is expected to be at least
output_stride x picture-height.
The ordering of samples in memory is R, G, B, A, R, G, B, A… in scan order (endian-independent).
Errors
Returns Err if data doesn’t contain a valid WebP image, or
output_buffer is too small.
Variants
WebPDecodeRGBAIntoWebPDecodeARGBIntoWebPDecodeBGRAIntoWebPDecodeRGBIntoWebPDecodeBGRInto
Examples
use libwebp::{WebPGetInfo, WebPDecodeRGBAInto};
let data: &[u8];
let (width, height) = WebPGetInfo(data).expect("Invalid WebP header");
let stride = width * 4;
let mut buf = vec![0; stride as usize * height as usize];
WebPDecodeRGBAInto(data, &mut buf, stride).expect("Invalid WebP data");
eprintln!(
"top-left pixel: rgba({}, {}, {}, {})",
buf[0],
buf[1],
buf[2],
buf[3] as f64 / 255.0,
)