7 个不稳定版本 (3 个破坏性更新)
0.5.0-rc1 | 2024年4月16日 |
---|---|
0.5.0-rc0 | 2024年4月7日 |
0.4.10 | 2024年1月15日 |
0.4.0 | 2023年11月8日 |
0.1.9 | 2023年3月29日 |
#257 in 图像
每月下载量1,032次
用于 8 个 crate (6 个直接使用)
410KB
6K SLoC
Zune-png
快速、正确且安全的 PNG 解码器
局限性
- 此解码器(目前)将小于 8 bpp 的图像自动扩展为 8 位(1 字节)。这取决于您的用例。
功能
- 快速 deflate 解码器
- 向量化和位操作
- 内存友好(少量分配)
- 平台特定内敛之外无不安全代码
- 支持动画图像解码直到后处理
使用方法
首先,在您的 Cargo.toml 中包含此内容
[dependencies]
zune-png = "0.2.0"
然后您可以在库/二进制文件中访问解码器
use zune_png::PngDecoder;
// decode bytes
let decoder = PngDecoder::new(b"bytes").decode().unwrap();
调试与发布
解码器严重依赖平台特定内敛,即 AVX2 和 SSE 以在解码中获得速度提升,但在调试构建中表现不佳。为了在调试模式下编译程序时获得合理性能,请将以下内容添加到您的 Cargo.toml
# `zune-png` package will be always built with optimizations
[profile.dev.package.zune-png]
opt-level = 3
基准测试
更新后的基准测试,比较此解码器与其他 Rust 和 C 解码器,可以在此处找到,带有 png
前缀。基准测试定期更新以跟上优化的添加。