rx0/src/main.rs

45 lines
1.1 KiB
Rust

use std::{fs::File, io::{Cursor, Write}};
use protocol::{ProtocolReader, ProtocolWriter};
mod decode_image;
mod decode_tile;
mod encode_image;
mod encode_tile;
mod image;
mod png_utils;
mod protocol;
fn main() {
// run_for("zonked".to_string(), 9, 2, Some(330000));
run_for("lohikar".to_string());
run_for("zonked".to_string());
run_for("avatar2".to_string());
run_for("avatar2_small".to_string());
}
fn run_for(name: String) {
let image = png_utils::load_image(
format!("inputs/{}.png", name),
[5, 5, 5, 1]
).unwrap();
let mut writer = ProtocolWriter::new(vec![]);
encode_image::encode_image(
image,
&mut writer
).unwrap();
let compressed = writer.destroy();
let mut output_file = File::create(format!("outputs/{}.rx0", name)).unwrap();
output_file.write_all(&compressed).unwrap();
let mut reader = ProtocolReader::new(Cursor::new(compressed));
let decompressed_image = decode_image::decode_image(&mut reader).unwrap();
png_utils::save_image(
format!("outputs/{}_out.png", name),
decompressed_image
).unwrap();
}