fparkan/vendor/gif/examples/check.rs
Valentin Popov 1b6a04ca55
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
2024-01-08 01:21:28 +04:00

42 lines
1.1 KiB
Rust

use std::{env, fs, process};
fn main() {
let file = env::args().nth(1)
.unwrap_or_else(|| explain_usage());
let file = fs::File::open(&file)
.expect("failed to open input file");
let mut reader = {
let mut options = gif::DecodeOptions::new();
options.allow_unknown_blocks(true);
options.read_info(file).unwrap()
};
loop {
let frame = match reader.read_next_frame() {
Ok(Some(frame)) => frame,
Ok(None) => break,
Err(error) => {
println!("Error: {:?}", error);
break;
}
};
println!(
" Frame:\n \
delay: {:?}\n \
canvas: {}x{}+{}+{}\n \
dispose: {:?}\n \
needs_input: {:?}",
frame.delay,
frame.width, frame.height, frame.left, frame.top,
frame.dispose,
frame.needs_user_input
);
}
}
fn explain_usage() -> ! {
println!("Print information on the frames of a gif.\n\nUsage: check <file>");
process::exit(1)
}