8 个版本
0.2.10 | 2024 年 7 月 7 日 |
---|---|
0.2.7 | 2023 年 11 月 20 日 |
0.2.6 | 2023 年 6 月 15 日 |
0.2.5 | 2023 年 1 月 4 日 |
0.1.1 |
|
#867 在 图像
每月 481 次下载
用于 8 个 crate(直接使用 4 个)
32KB
669 行
Rust 对 AOMedia AV1 解码器的封装
它是一个最小的安全封装,允许解码单个 AV1 帧图像。它适用于解码 AVIF 图像。
用法
请参阅 examples/topng.rs
以获取完整代码。
您需要 avif-parse crate 来从 AVIF 文件中提取 AV1 数据,以及 yuv crate 将 YUV 像素转换为 RGB。
let avif = avif_parse::read_avif(file)?;
let mut d = Decoder::new(&Config {
threads: num_cpus::get(),
})?;
let img = d.decode_frame(&avif.primary_item)?;
match img.rows_iter()? {
RowsIters::YuvPlanes8 {y,u,v,chroma_sampling} => {
match chroma_sampling {
color::ChromaSampling::Cs444 => {
yuv_444(y, u, v).map(|px| {
// here's your YUV pixel
});
},
}
},
}
依赖项
~20MB
~402K SLoC