2 个版本
0.4.1 | 2022年10月16日 |
---|---|
0.4.0 | 2022年1月6日 |
0.3.1 |
|
0.2.0 |
|
0.0.1 |
|
#63 in 图像
613,017 每月下载量
在 1,166 个 crate (7 直接) 中使用
72KB
1.5K SLoC
qoi
纯 Rust 实现的快速 QOI 图像格式的编码器/解码器。
- 现有的 QOI 编码器/解码器中最快的之一。
- 符合最新的 QOI 格式规范。
- 没有不安全代码。
- 直接支持从 / 编码到
std::io
流。 no_std
支持。- 与参考 C 实现进行往返测试;模糊测试。
示例
use qoi::{encode_to_vec, decode_to_vec};
let encoded = encode_to_vec(&pixels, width, height)?;
let (header, decoded) = decode_to_vec(&encoded)?;
assert_eq!(header.width, width);
assert_eq!(header.height, height);
assert_eq!(decoded, pixels);
基准测试
decode:Mp/s encode:Mp/s decode:MB/s encode:MB/s
qoi.h 282.9 225.3 978.3 778.9
qoi-rust 427.4 290.0 1477.7 1002.9
- 参考 C 实现: phoboslab/qoi@00e34217。
- 基准测试时间是在 Apple M1 笔记本上收集的。
- 包含 2846 张图片的套件,由上游提供(tarball):所有 pngs,除了两幅有损坏的校验和。
- 总共 1.32 GPixels,4.46 GB 的原始像素数据。
还进行了所有其他 Rust QOI 实现的基准测试,以进行比较,并且在此文档编写时,此库证明了它是速度最快的一个,速度快得相当明显。
Rust 版本
最新 crate 版本所需的最低 Rust 版本是 1.61.0。
无 std
此 crate 支持 no_std
模式。默认情况下,通过 std
功能启用 std。您可以通过禁用 default-features
来针对 core,在这种情况下,与 std::io
、std::error::Error
和堆分配相关的所有内容都禁用。还有一个可以激活的附加 alloc
功能,可以将堆分配支持恢复。
许可证
此项目同时获得 MIT 和 Apache 2.0 许可。
依赖关系
~135KB