Skip to main content

novel_api/common/utils/
webp.rs

1use std::fs;
2use std::path::Path;
3
4use image::DynamicImage;
5use webp::Encoder;
6
7use crate::Error;
8
9pub fn save_as_webp<T>(image: &DynamicImage, quality: f32, path: T) -> Result<(), Error>
10where
11    T: AsRef<Path>,
12{
13    let encoder = Encoder::from_image(image).map_err(|err| Error::Webp(err.to_string()))?;
14    let webp = encoder.encode(quality);
15    fs::write(path, &*webp)?;
16    Ok(())
17}