pub mod linear_rgb;
pub mod srgb;
pub use linear_rgb::*;
pub use srgb::*;
pub mod farbfeld;
pub use farbfeld::*;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct Extent {
pub x: usize,
pub y: usize,
}
#[derive(Debug)]
pub struct Image
{
pub extent: Extent,
pub pixels: Vec
,
}
#[derive(Debug)]
pub enum Error {
Invalid,
Io(std::io::Error),
}
pub trait Format
{
fn read(input: &mut I) -> Result, Error>
where
I: std::io::Read;
fn write(output: &mut O, img: &Image) -> std::io::Result<()>
where
O: std::io::Write;
}
pub trait Pixel:
std::ops::AddAssign
+ std::ops::SubAssign
+ std::ops::MulAssign
+ std::ops::DivAssign
+ std::ops::Add