use image::{Rgba, RgbaImage};
use std::path::Path;
fn main() {
let dir = Path::new("tests/fixtures");
std::fs::create_dir_all(dir).unwrap();
let mut baseline = RgbaImage::new(100, 100);
for px in baseline.pixels_mut() {
*px = Rgba([30, 60, 200, 255]);
}
baseline.save(dir.join("baseline.png")).unwrap();
baseline.save(dir.join("identical.png")).unwrap();
let mut changed_small = baseline.clone();
for y in 30..40 {
for x in 20..30 {
changed_small.put_pixel(x, y, Rgba([255, 0, 0, 255]));
}
}
changed_small.save(dir.join("changed_small.png")).unwrap();
let mut changed_large = baseline.clone();
for y in 5..25 {
for x in 5..25 {
changed_large.put_pixel(x, y, Rgba([0, 255, 0, 255]));
}
}
for y in 70..80 {
for x in 60..75 {
changed_large.put_pixel(x, y, Rgba([255, 255, 255, 255]));
}
}
changed_large.save(dir.join("changed_large.png")).unwrap();
let mut different_size = RgbaImage::new(120, 80);
for px in different_size.pixels_mut() {
*px = Rgba([30, 60, 200, 255]);
}
different_size.save(dir.join("different_size.png")).unwrap();
println!("Fixtures generated in tests/fixtures/");
}