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}