Skip to main content

image_images/
image_images.rs

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