Crates.io | imsz |
lib.rs | imsz |
version | 0.3.1 |
source | src |
created_at | 2022-04-24 01:35:16.543812 |
updated_at | 2024-02-08 20:24:14.74411 |
description | Get width and height from an image file reading as few bytes as possible. |
homepage | |
repository | https://github.com/panzi/imsz |
max_upload_size | |
id | 572895 |
size | 61,733 |
Get width and height from an image file reading as few bytes as possible.
This is a fork of scardine/imsz that adds support for more file formats, but also breaks API compatibility in order to be more idiomatic Rust. It also provides a C library wrapper. For more information on how this started see the mentioned link.
The library itself has zero dependencies, but the example binary uses clap.
There is a simple example binary:
$ 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 <paulo@scardine.com.br>, Mathias Panzenböck <grosser.meister.morti@gmx.net>
USAGE:
imsz [FILES]...
ARGS:
<FILES>...
OPTIONS:
-h, --help Print help information
-V, --version Print version information
The relevant parts:
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)?;
No guarantees of correct or complete implementation are made.