use crate::backends::*;
use fast_image_resize::images::{Image, ImageRef};
use fast_image_resize::Resizer;
use fast_image_resize::PixelType;
use image::GenericImageView;
pub fn fast_resize(f: &Path) -> Result<Vec<u8>> {
let img = image::ImageReader::open(f)?
.with_guessed_format()?
.decode()?;
let (true_w, true_h) = img.dimensions();
let s = |x| if x > 512 { x / 4 } else { x };
let pixels = img.into_rgb8().into_raw();
let src = ImageRef::new(
true_w,
true_h,
&pixels,
PixelType::U8x3, )?;
let mut dst = Image::new(
s(true_w),
s(true_h),
src.pixel_type(),
);
let mut resizer = Resizer::new();
resizer.resize(&src, &mut dst, None)?;
Ok(dst.into_vec())
}