45 lines
1.1 KiB
Rust
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();
|
|
}
|
|
|