rotations/
rotations.rs

1use pixtra::canvas::Canvas;
2use pixtra::pixels::Pixel;
3use pixtra::utility::error;
4use std::path::Path;
5
6fn draw_filter(_: &Canvas, x: u32, y: u32) -> Pixel {
7    let pixel = Pixel::new(x as u8, y as u8, 0, 255);
8    pixel
9}
10
11fn main() {
12    let canvas = Canvas::new(100, 200);
13    let canvas = canvas.filter(draw_filter);
14    canvas.save(Path::new("rotation-before-1.png")).unwrap();
15    let canvas_old = canvas.clone();
16    let canvas = canvas.rotate90();
17    canvas.save(Path::new("rotation-after-1.png")).unwrap();
18    let canvas = canvas.rotate90();
19    let canvas = canvas.rotate90();
20    let canvas = canvas.rotate90();
21    let rotate_error = error(&canvas_old, &canvas);
22    println!("ERROR: {}", rotate_error);
23
24    let canvas = Canvas::new(200, 100);
25    let canvas = canvas.filter(draw_filter);
26    canvas.save(Path::new("rotation-before-2.png")).unwrap();
27    let canvas = canvas.rotate90();
28    canvas.save(Path::new("rotation-after-2.png")).unwrap();
29}