resize 0.0.1

Simple resampling library in pure Rust.
Documentation
extern crate resize;
extern crate png;

use std::env;
use std::fs::File;
use resize::Type::Triangle;

fn main() {
    let args: Vec<_> = env::args().collect();
    if args.len() != 4 {
        return println!("Usage: {} in.png WxH out.png", args[0]);
    }

    let decoder = png::Decoder::new(File::open(&args[1]).unwrap());
    let (info, mut reader) = decoder.read_info().unwrap();
    let mut src = vec![0;info.buffer_size()];
    reader.next_frame(&mut src).unwrap();

    let (w1, h1) = (info.width as usize, info.height as usize);
    let dst_dims: Vec<_> = args[2].split("x").map(|s| s.parse().unwrap()).collect();
    let (w2, h2) = (dst_dims[0], dst_dims[1]);
    let mut dst = vec![0;w2*h2];
    let mut resizer = resize::new(w1, h1, w2, h2, Triangle);
    resizer.run(&src, &mut dst);

    let outfh = File::create(&args[3]).unwrap();
    let encoder = png::Encoder::new(outfh, w2 as u32, h2 as u32);
    encoder.write_header().unwrap().write_image_data(&dst).unwrap();
}