image_images/
image_images.rs

1use ab_glyph::FontArc;
2use ::glam::{DVec2, dvec2};
3use image::ImageReader;
4use palette::Srgba;
5use render_agnostic::{ImageRenderer, Renderer};
6
7fn main() {
8    let mut image_renderer = ImageRenderer::new(
9        400,
10        400,
11        0.8,
12        DVec2::splat(0.5),
13        2,
14        FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
15    );
16
17    image_renderer.register_image(
18        String::from("beebo"),
19        ImageReader::open("BeeboBall.png").unwrap().decode().unwrap().into_rgba8(),
20    );
21
22    image_renderer.render_rectangle(
23        dvec2(0.0, 0.0),
24        100.0,
25        100.0,
26        dvec2(0.0, 0.0),
27        0.0,
28        Srgba::new(1.0, 0.0, 0.0, 1.0),
29    );
30
31    image_renderer.render_image(
32        "beebo",
33        dvec2(0.0, 0.0),
34        100.0,
35        100.0,
36        dvec2(0.0, 0.0),
37        0.0,
38    );
39
40    image_renderer.render_rectangle(
41        dvec2(100.0, 100.0),
42        100.0,
43        100.0,
44        dvec2(0.0, 0.0),
45        45.0f64.to_radians(),
46        Srgba::new(1.0, 0.0, 0.0, 1.0),
47    );
48
49    image_renderer.render_image(
50        "beebo",
51        dvec2(100.0, 100.0),
52        100.0,
53        100.0,
54        dvec2(0.0, 0.0),
55        45.0f64.to_radians(),
56    );
57
58    image_renderer.render_rectangle(
59        dvec2(200.0, 200.0),
60        100.0,
61        100.0,
62        dvec2(0.5, 0.5),
63        -45.0f64.to_radians(),
64        Srgba::new(1.0, 0.0, 0.0, 1.0),
65    );
66
67    image_renderer.render_image(
68        "beebo",
69        dvec2(200.0, 200.0),
70        100.0,
71        100.0,
72        dvec2(0.5, 0.5),
73        -45.0f64.to_radians(),
74    );
75
76    image_renderer.render_rectangle(
77        dvec2(300.0, 300.0),
78        100.0,
79        100.0,
80        dvec2(1.0, 1.0),
81        -90.0f64.to_radians(),
82        Srgba::new(1.0, 0.0, 0.0, 1.0),
83    );
84
85    image_renderer.render_image(
86        "beebo",
87        dvec2(300.0, 300.0),
88        100.0,
89        100.0,
90        dvec2(1.0, 1.0),
91        -90.0f64.to_radians(),
92    );
93
94    image_renderer.render_circle(dvec2(100.0, 100.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
95    image_renderer.render_circle(dvec2(200.0, 200.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
96    image_renderer.render_circle(dvec2(300.0, 300.0), 10.0, Srgba::new(1.0, 1.0, 0.0, 1.0));
97
98
99    image_renderer
100        .render_image_onto(image_renderer.black())
101        .save("images.png")
102        .unwrap();
103}