1use std::path::{Path, PathBuf};
2
3use image::{DynamicImage, ImageBuffer, Rgba};
4
5#[derive(Debug)]
7pub enum ImageInput {
8 FilePath(PathBuf),
10 Buffer(ImageBuffer<Rgba<u8>, Vec<u8>>),
13 Dynamic(DynamicImage),
15}
16
17impl From<&Path> for ImageInput {
18 fn from(path: &Path) -> Self {
19 ImageInput::FilePath(path.to_path_buf())
20 }
21}
22
23impl From<PathBuf> for ImageInput {
24 fn from(path: PathBuf) -> Self {
25 ImageInput::FilePath(path)
26 }
27}
28
29impl From<ImageBuffer<Rgba<u8>, Vec<u8>>> for ImageInput {
30 fn from(buffer: ImageBuffer<Rgba<u8>, Vec<u8>>) -> Self {
31 ImageInput::Buffer(buffer)
32 }
33}
34
35impl From<DynamicImage> for ImageInput {
36 fn from(image: DynamicImage) -> Self {
37 ImageInput::Dynamic(image)
38 }
39}