Skip to content
Snippets Groups Projects
scale.rs 466 B
Newer Older
Louis's avatar
Louis committed
use image::imageops::FilterType;
Louis's avatar
Louis committed
use image::{imageops, GenericImage, Pixel};
Louis's avatar
Louis committed

Louis's avatar
Louis committed
use crate::TypedOutputFormat;

pub fn rescale<T: GenericImage>(image: &T, factor: f32) -> anyhow::Result<TypedOutputFormat<T>>
Louis's avatar
Louis committed
where
	T::Pixel: 'static,
	<T::Pixel as Pixel>::Subpixel: 'static,
{
	let nwidth = (image.width() as f32 * factor) as u32;
	let nheight = (image.height() as f32 * factor) as u32;

	Ok(imageops::resize(
		image,
		nwidth,
		nheight,
		FilterType::Nearest,
	))
}