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
... enableslibwebpdemux
functions.mux
... enableslibwebpmux
functions.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.
static
feature is turned on.LIBWEBP_SYS_STATIC
environment variable is set to1
when 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