img_diff 5.0.0

Command line tool to diff images in 2 structurally similar folders and output diff images.
Documentation
use criterion::*;
use img_diff::{do_diff, subtract_image, Config};
use std::path::PathBuf;
use tempfile::tempdir;

fn end_to_end(c: &mut Criterion) {
    let diff = tempdir().unwrap();

    let config: Config = Config {
        src_dir: PathBuf::from("tests/bench_png/bench_png_src"),
        dest_dir: PathBuf::from("tests/bench_png/bench_png_dest"),
        diff_dir: PathBuf::from(diff.path().to_str().unwrap()),
        verbose: true,
    };

    let mut group = c.benchmark_group("img_diff");
    group.sample_size(20);
    group.bench_function("png", |b| b.iter(|| do_diff(&config)));
    group.bench_function("bmp", |b| b.iter(|| do_diff(&config)));
    group.finish();
}

fn diff(c: &mut Criterion) {
    let src_image = image::open("tests/bench_png/bench_png_src/rustacean-error.png").unwrap();
    let dest_image = image::open("tests/bench_png/bench_png_dest/rustacean-error.png").unwrap();

    let mut group = c.benchmark_group("img_diff");
    group.sample_size(30);
    group.bench_function("subtract", |b| {
        b.iter(|| {
            let (_diff_value, _diff_image) = subtract_image(&src_image, &dest_image);
        })
    });
    group.finish();
}

criterion_group!(benches, end_to_end, diff);
criterion_main!(benches);