image_meta/
types.rs

1#[derive(Clone, Debug, Eq, PartialEq)]
2pub struct ImageMeta {
3    pub animation_frames: Option<usize>,
4    pub color: Color,
5    pub dimensions: Dimensions,
6    pub format: Format,
7}
8
9#[derive(Clone, Debug, Eq, PartialEq)]
10pub struct Dimensions {
11    pub height: u32,
12    pub width: u32,
13}
14
15#[derive(Clone, Copy, Debug, Eq, PartialEq, strum::Display)]
16pub enum Format {
17    Bmp,
18    Gif,
19    Jpeg,
20    Png,
21    Webp,
22    Hdr,
23}
24
25#[derive(Clone, Copy, Debug, Eq, PartialEq, strum::Display)]
26pub enum ColorMode {
27    Grayscale,
28    Indexed,
29    Rgb,
30}
31
32#[derive(Clone, Copy, Debug, Eq, PartialEq)]
33pub struct Color {
34    pub alpha_channel: bool,
35    pub mode: ColorMode,
36    pub resolution: u8,
37}
38
39impl ImageMeta {
40    pub fn is_animation(&self) -> bool {
41        self.animation_frames.is_some()
42    }
43}