image-utils 0.2.0

Image processing utilities
Documentation
#[cfg(test)]

extern crate image;
extern crate image_utils;

use std::fs::remove_file;
use std::path::Path;
use image::{ImageFormat, ColorType};
use image_utils::{info, Info, crop, resize};

#[test]
fn test_info_jpg() {
    let inf = info(&Path::new("./tests/images/test.jpg")).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 510,
                   height: 350,
                   ratio: 510 as f32 / 350 as f32,
                   frames: 1,
               });
}

#[test]
fn test_info_jpg_tmp() {
    let inf = info(&Path::new("./tests/images/test.jpg.tmp")).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 510,
                   height: 350,
                   ratio: 510 as f32 / 350 as f32,
                   frames: 1,
               });
}

#[test]
fn test_info_gif() {
    let inf = info(&Path::new("./tests/images/test.gif")).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 500,
                   height: 265,
                   ratio: 500 as f32 / 265 as f32,
                   frames: 12,
               });
}

#[test]
fn test_info_gif_tmp() {
    let inf = info(&Path::new("./tests/images/test.gif.tmp")).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 500,
                   height: 265,
                   ratio: 500 as f32 / 265 as f32,
                   frames: 12,
               });
}

#[test]
fn test_crop_jpg() {
    let dest = Path::new("./tests/images/cropped.jpg");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    crop(&Path::new("./tests/images/test.jpg"),
         10,
         10,
         100,
         100,
         &dest)
        .unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 100,
                   height: 100,
                   ratio: 100 as f32 / 100 as f32,
                   frames: 1,
               });
}

#[test]
fn test_crop_jpg_tmp() {
    let dest = Path::new("./tests/images/cropped.jpg.tmp");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    crop(&Path::new("./tests/images/test.jpg.tmp"),
         10,
         10,
         100,
         100,
         &dest)
        .unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 100,
                   height: 100,
                   ratio: 100 as f32 / 100 as f32,
                   frames: 1,
               });
}

#[test]
fn test_crop_gif() {
    let dest = Path::new("./tests/images/cropped.gif");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    crop(&Path::new("./tests/images/test.gif"),
         10,
         10,
         100,
         100,
         &dest)
        .unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 100,
                   height: 100,
                   ratio: 100 as f32 / 100 as f32,
                   frames: 12,
               });
}

#[test]
fn test_crop_gif_tmp() {
    let dest = Path::new("./tests/images/cropped.gif.tmp");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    crop(&Path::new("./tests/images/test.gif.tmp"),
         10,
         10,
         100,
         100,
         &dest)
        .unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 100,
                   height: 100,
                   ratio: 100 as f32 / 100 as f32,
                   frames: 12,
               });
}

#[test]
#[should_panic]
fn test_crop_jpg_x() {
    crop(&Path::new("./tests/images/test.jpg"),
         10,
         10,
         1000,
         100,
         &Path::new("./tests/images/cropped.jpg"))
        .unwrap();
}

#[test]
#[should_panic]
fn test_crop_jpg_y() {
    crop(&Path::new("./tests/images/test.jpg"),
         10,
         10,
         100,
         1000,
         &Path::new("./tests/images/cropped.jpg"))
        .unwrap();
}

#[test]
#[should_panic]
fn test_crop_gif_x() {
    crop(&Path::new("./tests/images/test.gif"),
         10,
         10,
         1000,
         100,
         &Path::new("./tests/images/cropped.gif"))
        .unwrap();
}

#[test]
#[should_panic]
fn test_crop_gif_y() {
    crop(&Path::new("./tests/images/test.gif"),
         10,
         10,
         100,
         1000,
         &Path::new("./tests/images/cropped.gif"))
        .unwrap();
}

#[test]
fn test_resize_jpg() {
    let dest = Path::new("./tests/images/resized.jpg");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    resize(&Path::new("./tests/images/test.jpg"), 200, 200, &dest).unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 200,
                   height: 137,
                   ratio: 200 as f32 / 137 as f32,
                   frames: 1,
               });
}

#[test]
fn test_resize_jpg_tmp() {
    let dest = Path::new("./tests/images/resized.jpg.tmp");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    resize(&Path::new("./tests/images/test.jpg.tmp"), 200, 200, &dest).unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::JPEG,
                   color: ColorType::RGB(8),
                   width: 200,
                   height: 137,
                   ratio: 200 as f32 / 137 as f32,
                   frames: 1,
               });
}

#[test]
fn test_resize_gif() {
    let dest = Path::new("./tests/images/resized.gif");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    resize(&Path::new("./tests/images/test.gif"), 200, 200, &dest).unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 200,
                   height: 106,
                   ratio: 200 as f32 / 106 as f32,
                   frames: 12,
               });
}

#[test]
fn test_resize_gif_tmp() {
    let dest = Path::new("./tests/images/resized.gif.tmp");
    if dest.exists() {
        remove_file(&dest).unwrap();
    }
    resize(&Path::new("./tests/images/test.gif.tmp"), 200, 200, &dest).unwrap();
    let inf = info(&dest).unwrap();
    assert_eq!(inf,
               Info {
                   format: ImageFormat::GIF,
                   color: ColorType::RGBA(8),
                   width: 200,
                   height: 106,
                   ratio: 200 as f32 / 106 as f32,
                   frames: 12,
               });
}