use webp::AnimDecoder;
use webp::Encoder;
fn main() {
let src = "dumy_anim";
let input = std::path::Path::new("assets")
.join(src)
.with_extension("webp");
let webp = std::fs::read(input).unwrap();
match AnimDecoder::new(&webp).decode() {
Ok(frames) => {
let mut file_number = 0;
println!("has_animation {}", frames.has_animation());
println!("loop_count {}", frames.loop_count);
println!("bg_color {}", frames.bg_color);
let mut last_ms = 0;
for f in frames.into_iter() {
let delay_ms = f.get_time_ms() - last_ms;
println!(
"{}x{} {:?} time{}ms delay{}ms",
f.width(),
f.height(),
f.get_layout(),
f.get_time_ms(),
delay_ms
);
last_ms += delay_ms;
let webp = Encoder::from(&f).encode_simple(true, 100f32);
let output = std::path::Path::new("assets")
.join(format!("{}{}", src, file_number))
.with_extension("webp");
file_number += 1;
std::fs::write(&output, &*webp.unwrap()).unwrap();
}
}
Err(mes) => {
println!("{}", mes);
}
}
}