Skip to main content

astroimage/
types.rs

1#[allow(dead_code)]
2#[derive(Copy, Clone, PartialEq, Debug)]
3pub enum BayerPattern {
4    None,
5    Rggb,
6    Bggr,
7    Gbrg,
8    Grbg,
9}
10
11#[derive(Copy, Clone, PartialEq, Debug)]
12pub enum DataType {
13    Uint16,
14    Float32,
15}
16
17pub enum PixelData {
18    Uint16(Vec<u16>),
19    Float32(Vec<f32>),
20}
21
22#[derive(Clone)]
23#[allow(dead_code)]
24pub struct ImageMetadata {
25    pub width: usize,
26    pub height: usize,
27    pub channels: usize,
28    pub dtype: DataType,
29    pub bayer_pattern: BayerPattern,
30    pub flip_vertical: bool,
31}
32
33#[allow(dead_code)]
34pub struct ProcessedImage {
35    pub data: Vec<u8>,
36    pub width: usize,
37    pub height: usize,
38    pub is_color: bool,
39    /// Number of channels in `data`: 3 = RGB, 4 = RGBA.
40    pub channels: u8,
41    /// Whether the image was vertically flipped during processing.
42    pub flip_vertical: bool,
43}
44
45#[allow(dead_code)]
46pub struct ProcessConfig {
47    pub downscale_factor: usize,
48    pub jpeg_quality: u8,
49    pub apply_debayer: bool,
50    pub preview_mode: bool,
51    pub auto_stretch: bool,
52    /// Output RGBA (4 bytes/pixel) instead of RGB (3 bytes/pixel).
53    pub rgba_output: bool,
54}