This is a binding to the libwebp library.
# Cargo.toml
[dependencies]
libwebp = { version = "0.1.2", features = ["0_6"] }use libwebp::WebPDecodeRGBA;
let data: &[u8];
let (width, height, buf) = WebPDecodeRGBA(data).unwrap();
eprintln!("width = {}, height = {}", width, height);
eprintln!(
"top-left pixel: rgba({}, {}, {}, {})",
buf[0],
buf[1],
buf[2],
buf[3] as f64 / 255.0,
)use libwebp::WebPEncodeRGBA;
let buf: &[u8] = &[
255, 255, 255, 255, // white
255, 0, 0, 255, // red
0, 255, 0, 255, // green
0, 0, 255, 255, // blue
];
let data = WebPEncodeRGBA(buf, 2, 2, 8, 75.0).unwrap();
let lossless_data = WebPEncodeLosslessRGBA(buf, 2, 2, 8).unwrap();Rust 1.31.0
demux... enableslibwebpdemuxfunctions.mux... enableslibwebpmuxfunctions.0_5... enables functions introduced in libwebp 0.5.0.0_6... enables functions introduced in libwebp 0.6.0.1_1... enables functions introduced in libwebp 1.1.0.static... statically link against the bundled libwebp.extern-types... enables#![feature(extern_types)].
If libwebp is found in the system, it links against the library. Otherwise it builds and links against the bundled libwebp.
In these cases, static link is preferred:
- For musl target.
- When cross-compiling.
staticfeature is turned on.LIBWEBP_SYS_STATICenvironment variable is set to1when building.
types.h-
WebPMalloc -
WebPFree
-
decode.h-
WebPGetDecoderVersion -
WebPGetInfo -
WebPDecode* -
WebPDecodeYUV -
WebPDecode*Into -
WebPDecodeYUVInto -
WEBP_CSP_MODE -
WebPIsPremultipliedMode -
WebPIsAlphaMode -
WebPIsRGBMode -
WebPRGBABuffer -
WebPYUVABuffer -
WebPDecBuffer -
WebPInitDecBuffer -
WebPFreeDecBuffer -
VP8StatusCode -
WebPIDecoder(internal memory) -
WebPIDecoder(external memory) -
WebPINewDecoder(internal memory) -
WebPINewDecoder(external memory) -
WebPINewRGB(internal memory) -
WebPINewRGB(external memory) -
WebPINewYUVA(internal memory) -
WebPINewYUVA(external memory) -
WebPIDelete -
WebPIAppend -
WebPIUpdate -
WebPIDecGetRGB -
WebPIDecGetYUVA -
WebPIDecodedArea -
WebPBitstreamFeatures -
WebPGetFeatures -
WebPDecoderOptions -
WebPDecoderConfig -
WebPInitDecoderConfig -
WebPIDecode -
WebPDecode
-
encode.h-
WebPGetEncoderVersion -
WebPEncode* -
WebPEncodeLossless* -
WebPImageHint -
WebPConfig -
WebPPreset -
WebPConfigInit -
WebPConfigPreset -
WebPConfigLosslessPreset -
WebPValidateConfig -
WebPAuxStats -
WebPWriterFunction -
WebPMemoryWriter -
WebPMemoryWriterInit -
WebPMemoryWriterClear -
WebPMemoryWrite -
WebPProgressHook -
WebPEncCSP -
WebPEncodingError -
WEBP_MAX_DIMENSION -
WebPPicture -
WebPPictureInit -
WebPPictureAlloc -
WebPPictureFree -
WebPPictureCopy -
WebPPlaneDistortion -
WebPPictureDistortion -
WebPPictureCrop -
WebPPictureView -
WebPPictureIsView -
WebPPictureRescale -
WebPPictureImportRGB -
WebPPictureImportRGBA -
WebPPictureImportRGBX -
WebPPictureImportBGR -
WebPPictureImportBGRA -
WebPPictureImportBGRX -
WebPPictureARGBToYUVA -
WebPPictureARGBToYUVADithered -
WebPPictureSharpARGBToYUVA -
WebPPictureSmartARGBToYUVA -
WebPPictureYUVAToARGB -
WebPCleanupTransparentArea -
WebPPictureHasTransparency -
WebPBlendAlpha -
WebPEncode
-
mux_types.h- Not at all
demux.h- Not at all
mux.h- Not at all