31 lines
946 B
Rust
31 lines
946 B
Rust
|
pub mod Read {
|
||
|
use image::{io::Reader as ImageReader, DynamicImage};
|
||
|
use rpl::instructions::read::{Read, SourceType};
|
||
|
|
||
|
pub fn read(Read { source, format }: Read) -> DynamicImage {
|
||
|
let mut 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::{io::Reader as ImageReader, DynamicImage, ImageFormat};
|
||
|
use rpl::instructions::write::{TargetFormat, TargetType, Write};
|
||
|
|
||
|
pub fn write(Write { target, format }: Write, input_data: DynamicImage) {
|
||
|
input_data.save_with_format(
|
||
|
match target {
|
||
|
TargetType::File(path) => path,
|
||
|
},
|
||
|
match format {
|
||
|
TargetFormat::Jpeg => ImageFormat::Jpeg,
|
||
|
TargetFormat::Png => ImageFormat::Png,
|
||
|
},
|
||
|
);
|
||
|
}
|
||
|
}
|