diff --git a/src/image.rs b/src/image.rs index 8bf0306b0..fc24ec656 100644 --- a/src/image.rs +++ b/src/image.rs @@ -106,6 +106,26 @@ impl TryFrom for Image { } } +impl TryFrom for Image { + type Error = ImageError; + + fn try_from(img: image::RgbImage) -> Result { + let (width, height) = img.dimensions(); + let image_data = img.into_raw(); + Image::from_rgb(width as i32, height as i32, image_data) + } +} + +impl TryFrom for Image { + type Error = ImageError; + + fn try_from(img: image::RgbaImage) -> Result { + let (width, height) = img.dimensions(); + let image_data = img.into_raw(); + Image::from_rgba(width as i32, height as i32, image_data) + } +} + /// Errors that can occur when creating an Image #[derive(Debug)] pub enum ImageError {