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}