use std::path::{Path, PathBuf};
use image::{DynamicImage, ImageBuffer, Rgba};
#[derive(Debug)]
pub enum ImageInput {
FilePath(PathBuf),
Buffer(ImageBuffer<Rgba<u8>, Vec<u8>>),
Dynamic(DynamicImage),
}
impl From<&Path> for ImageInput {
fn from(path: &Path) -> Self {
ImageInput::FilePath(path.to_path_buf())
}
}
impl From<PathBuf> for ImageInput {
fn from(path: PathBuf) -> Self {
ImageInput::FilePath(path)
}
}
impl From<ImageBuffer<Rgba<u8>, Vec<u8>>> for ImageInput {
fn from(buffer: ImageBuffer<Rgba<u8>, Vec<u8>>) -> Self {
ImageInput::Buffer(buffer)
}
}
impl From<DynamicImage> for ImageInput {
fn from(image: DynamicImage) -> Self {
ImageInput::Dynamic(image)
}
}