iowo/crates/eval/src/kind/debug/instr/mod.rs
Schrottkatze d79383a7df
cleanup: remove unneeded source format in read instruction
The image crate is able to infer the format, so that data is redundant
2024-01-23 12:40:25 +01:00

45 lines
1.3 KiB
Rust

pub mod read {
use image::{io::Reader as ImageReader, DynamicImage};
use ir::instruction::read::{Read, SourceType};
pub fn read(Read { source }: Read) -> DynamicImage {
// TODO: actual error handling
let img = ImageReader::open(match source {
SourceType::File(path) => path,
})
.expect("something went wrong :(((");
img.decode().expect("couldn't decode image")
}
}
pub mod write {
use image::{DynamicImage, ImageFormat};
use ir::instruction::write::{TargetFormat, TargetType, Write};
pub fn write(Write { target, format }: Write, input_data: &DynamicImage) {
// TODO: actual error handling
input_data
.save_with_format(
match target {
TargetType::File(path) => path,
},
match format {
TargetFormat::Jpeg => ImageFormat::Jpeg,
TargetFormat::Png => ImageFormat::Png,
},
)
.expect("couldn't save file");
}
}
pub mod filters {
pub mod invert {
use image::DynamicImage;
pub fn invert(mut input_data: DynamicImage) -> DynamicImage {
input_data.invert();
input_data
}
}
}