32 个版本
0.13.0 | 2024年6月18日 |
---|---|
0.12.0 | 2023年5月11日 |
0.11.0 | 2023年1月6日 |
0.10.1 | 2022年9月24日 |
0.3.5 | 2017年5月17日 |
#17 in 图像
187,794 每月下载量
用于 244 个crate (22 直接)
58KB
1K SLoC
imagesize
快速探测各种图像格式的大小,无需读取整个文件。
这个crate的目标是能够在不加载不必要数据和不引入更多依赖的情况下,读取支持图像的尺寸。大多数读取只需要16字节或更少,更复杂的格式则利用跳过垃圾数据。
用法
将以下内容添加到您的Cargo.toml中
[dependencies]
imagesize = "0.13"
支持的图像格式
- Aseprite
- Avif
- BMP
- DDS
- EXR
- Farbfeld
- GIF
- HDR
- HEIC / HEIF
- ICO*
- ILBM (IFF)
- JPEG
- JPEG XL
- KTX2
- PNG
- PNM (PBM, PGM, PPM)
- PSD / PSB
- QOI
- TGA
- TIFF
- VTF
- WEBP
如果您认为应该添加某种格式,请随时创建一个issue。
*ICO文件可以包含多个图像,imagesize
将给出最大的一个的尺寸。
示例
从文件中
match imagesize::size("example.webp") {
Ok(size) => println!("Image dimensions: {}x{}", size.width, size.height),
Err(why) => println!("Error getting dimensions: {:?}", why)
}
从向量中
let data = vec![0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x64, 0x00, 0x64, 0x00];
match imagesize::blob_size(&data) {
Ok(size) => println!("Image dimensions: {}x{}", size.width, size.height),
Err(why) => println!("Error getting dimensions: {:?}", why),
}