summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: df6b948435b5344af052c2588233d79584988104 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::{bmp::BMPImage, png::PNGImage, image::{Image, ImageBase, RGB}, reader::FileReader, writer::FileWriter};
use std::{env, fs::File, io::{BufReader, BufWriter}};

mod reader;
mod image;
mod bmp;
mod writer;
mod byte_encode;
mod png;
mod crc;
mod zlib;

fn main() {
	let args: Vec<String> = env::args().collect();
	if args.len() != 3
	{
		panic!("USAGE: <program> infline.png outfile.bmp");
	}
	
	let infile = File::open(args[1].clone()).expect("infile does not exist");
	let mut reader = FileReader::new(BufReader::new(infile));
	let png: ImageBase<RGB<u8>> = PNGImage::read_image(&mut reader).expect("PNG had error");

	let out_file = File::create(args[2].clone()).expect("Cannot create outfile");
	let mut writer = FileWriter::new(BufWriter::new(out_file));
	BMPImage::write_image(&png, &mut writer);
	// println!("{_bmp:?}");
}