#png #byte-stream #jpeg #webp #gif #file-format #file-content

no-std imghdr

Library that determines the type of image contained in a file or byte stream

11 releases (6 breaking)

0.7.0 May 8, 2019
0.6.0 May 8, 2019
0.5.0 May 6, 2019
0.4.0 Jul 20, 2016
0.1.4 Jul 18, 2016

#592 in Images

Download history 687/week @ 2024-11-14 585/week @ 2024-11-21 682/week @ 2024-11-28 449/week @ 2024-12-05 593/week @ 2024-12-12 944/week @ 2024-12-19 335/week @ 2024-12-26 233/week @ 2025-01-02 280/week @ 2025-01-09 504/week @ 2025-01-16 363/week @ 2025-01-23 263/week @ 2025-01-30 584/week @ 2025-02-06 310/week @ 2025-02-13 219/week @ 2025-02-20 347/week @ 2025-02-27

1,535 downloads per month
Used in 2 crates

Apache-2.0 OR MIT

21KB
119 lines

imghdr

Library that determines the type of image contained in a file or byte stream, basically clone of the Python imghdr module.

Latest Version Latest Version Rustc Version 1.31+ Travis Build Status Apache 2.0 OR MIT licensed

Examples

Check the file directly:

# extern crate imghdr;
# fn main() {
match imghdr::from_file("./tests/images/example.png") {
    Ok(Some(imghdr::Type::Png)) => println!("Yep, it is a PNG"),
    Ok(..) => println!("Nope, it is definitely not a PNG"),
    Err(e) => println!("Some error happened: {:?}", e),
}
# }

Or check the bytes stream:

# extern crate imghdr;
# use std::fs::File;
# use std::io::{self, Read};
#
# fn main() -> io::Result<()> {
let mut file = File::open("./tests/images/example.jpeg")?;
let mut content: Vec<u8> = vec![];
file.read_to_end(&mut content)?;

match imghdr::from_bytes(&content) {
    Some(imghdr::Type::Jpeg) => println!("And this is a Jpeg"),
    _ => println!("Can a Png, Bmp or other file format"),
}

# Ok(())
# }

No runtime deps