4 个版本
0.3.1 | 2024年2月8日 |
---|---|
0.2.2 | 2022年5月2日 |
0.2.1 | 2022年4月30日 |
0.2.0 | 2022年4月24日 |
#72 in 图像
7,725 每月下载量
42KB
912 行
imsz
从图像文件中尽可能少地读取字节来获取宽度和高度。
这是从 scardine/imsz 分支出来的一个版本,增加了对更多文件格式的支持,但为了更符合 Rust 的风格,打破了 API 兼容性。它还提供了一个 C 库包装器。有关如何开始的更多信息,请参阅提到的链接。
该库本身没有依赖项,但示例二进制文件使用了 clap。
用法
有一个简单的示例二进制文件
$ cargo run -q --example imsz testdata/image.gif
testdata/image.gif: GIF, 32 x 16
$ cargo run -q --example imsz -- --help
imsz 0.3.0
Paulo Scardine <[email protected]>, Mathias Panzenböck <[email protected]>
USAGE:
imsz [FILES]...
ARGS:
<FILES>...
OPTIONS:
-h, --help Print help information
-V, --version Print version information
相关部分
use imsz::imsz;
let info = imsz(filename)?;
println!("{}: {}, {} x {}", filename, info.format, info.width, info.height);
// testdata/image.gif: GIF, 32 x 16
// or for already opened files:
let info = imsz(File::open(filename)?);
// or for in memory buffers:
let info = imsz(b"\x89PNG\r\n\x1a\n...");
// or for *anything* implementing Read and Seek:
use imsz::imsz_from_reader;
let mut file = BufReader::new(File::open(filename)?);
let info = imsz_from_reader(&mut file)?;
支持的文件格式
- AVIF
- BMP
- DDS
- DIB
- GIF
- HEIC/HEIF
- ICO
- JPEG
- JPEG 2000
- PCX
- PNG
- PSD
- OpenEXR
- QOI
- TGA
- TIFF
- VTF
- WEBP
- XCF
不保证正确或完整实现。
相关作品
- scardine/imsz – 原始 Rust 库,此库是从该库分支出来的
- panzi/get_image_size.py – 一个非常相似的纯 Python 库
- StackOverflow 答案 – 一切开始的地方