4 个版本 (2 个破坏性版本)
0.3.1 | 2019 年 10 月 28 日 |
---|---|
0.3.0 | 2019 年 10 月 28 日 |
0.2.0 | 2019 年 10 月 3 日 |
0.1.0 | 2019 年 9 月 6 日 |
在 图像 中排名第 485
每月下载次数 23
195KB
4.5K SLoC
jp2k
OpenJPEG 的 Rust 绑定
支持将 JPEG2000 图像加载到 image::DynamicImage
.Rust
在 GPL-v3 重新授权之前从 https://framagit.org/leoschwarz/jpeg2000-rust 分支,增加了某些功能
- 除了缩减因子外,还指定解码区域和质量层
- 改进了 OpenJPEG -> DynamicImage 加载过程
- 从 JPEG2000 标题获取基本元数据
- 文档(尽管是最小限度的)
此库包含自己的 libopenjpeg,是静态链接的。如果您只需要原始 FFI 绑定,请参阅 openjpeg2-sys 或 openjpeg-sys。
用法
fn main() {
let bytes = include_bytes!("./rust-logo-512x512-blk.jp2");
let jp2k::Image(img) = jp2k::Image::from_bytes(
bytes,
jp2k::Codec::JP2,
Some(jp2k::DecodeParams::default().with_decoding_area(0, 0, 256, 256))
)
.unwrap();
let mut output = std::path::Path::new("examples/output/result.png");
let _ = img.save(&mut output);
}
原始警告和许可声明
警告
请注意,使用 C 代码意味着此 crate 可能容易受到各种内存漏洞的影响,例如,请参阅 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8332 以了解过去的实际示例。
一旦有人用纯 Rust 编写了有效的 JPEG2000 解码器,您可能应该切换到那个。
许可
您可以在 src
和 openjp2-sys/src
目录下使用 Rust 代码,其条款为 MIT 许可证(LICENSE-MIT
文件)或 Apache 许可证(LICENSE-APACHE
文件)。请注意,这将静态链接到 OpenJPEG,它有自己的许可证,您可以在 openjpeg-sys/libopenjpeg/LICENSE
中找到(您可能需要首先检出 git 子模块)。
许可证:MIT 或 Apache-2.0
依赖项
~0–1.9MB
~37K SLoC