[−][src]Crate imghdr
Library that determines the type of image contained in a file or byte stream, basically the clone of the Python imghdr module.
No-std support
Can be used in no-std
environments with disabled std
feature (enabled by default).
Examples
Check the file directly:
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:
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"), }
It is not required to pass the fully read file into the crate functions,
right now imghdr
requires only first 12 bytes of contents
for image format recognition.
Enums
Type | Recognized image types |
Functions
from_bytes | Try to determine image format from a bytes slice. |
from_file | Open file and try to determine if it is an image. |
from_reader | Try to determine image format from an IO stream of bytes. |