pub struct ImageRenderer { /* private fields */ }Implementations§
Source§impl ImageRenderer
impl ImageRenderer
Sourcepub fn new(
width: u32,
height: u32,
scale: f64,
scaling_target: DVec2,
supersampling: u32,
font: FontArc,
) -> Self
pub fn new( width: u32, height: u32, scale: f64, scaling_target: DVec2, supersampling: u32, font: FontArc, ) -> Self
Examples found in repository?
examples/lines.rs (lines 7-14)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_line(
17 dvec2(0.0, 0.0),
18 dvec2(128.0, 128.0),
19 2.0,
20 Srgba::new(1.0, 0.0, 0.0, 1.0),
21 );
22
23 image_renderer
24 .render_image_onto(image_renderer.black())
25 .save("lines.png")
26 .unwrap();
27}More examples
examples/pixels.rs (lines 7-14)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 7,
9 7,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_point(dvec2(1.0, 1.0), Srgba::new(1.0, 0.0, 0.0, 1.0));
17
18 image_renderer.render_point(dvec2(3.0, 3.0), Srgba::new(0.0, 1.0, 0.0, 1.0));
19
20 image_renderer.render_point(dvec2(5.0, 5.0), Srgba::new(0.0, 0.0, 1.0, 1.0));
21
22 image_renderer
23 .render_image_onto(image_renderer.black())
24 .save("pixels.png")
25 .unwrap();
26}examples/text.rs (lines 7-14)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_text(
17 "Top Left",
18 dvec2(0.0, 0.0),
19 anchor2d::LGT,
20 24.0,
21 Srgba::new(1.0, 1.0, 1.0, 1.0),
22 );
23
24 image_renderer.render_text_outline(
25 "Center",
26 dvec2(64.0, 64.0),
27 anchor2d::CGC,
28 24.0,
29 1.0,
30 Srgba::new(1.0, 1.0, 1.0, 1.0),
31 Srgba::new(1.0, 0.0, 0.0, 1.0),
32 );
33
34 image_renderer.render_text(
35 "Bottom Right",
36 dvec2(128.0, 128.0),
37 anchor2d::RGB,
38 24.0,
39 Srgba::new(1.0, 1.0, 1.0, 1.0),
40 );
41
42 image_renderer
43 .render_image_onto(image_renderer.black())
44 .save("text.png")
45 .unwrap();
46}examples/triangles.rs (lines 9-16)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 1.0,
13 DVec2::ZERO,
14 4,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_equilateral_triangle(
19 DVec2::splat(16.0),
20 16.0,
21 0.0,
22 Srgba::new(1.0, 1.0, 1.0, 1.0),
23 );
24
25 image_renderer.render_equilateral_triangle(
26 DVec2::splat(16.0),
27 16.0,
28 PI,
29 Srgba::new(1.0, 0.0, 0.0, 1.0),
30 );
31
32 image_renderer.render_equilateral_triangle_lines(
33 DVec2::splat(48.0),
34 16.0,
35 0.0,
36 2.0,
37 Srgba::new(0.0, 0.0, 1.0, 1.0),
38 );
39
40 image_renderer.render_equilateral_triangle_lines(
41 DVec2::splat(48.0),
42 16.0,
43 PI,
44 2.0,
45 Srgba::new(0.0, 1.0, 0.0, 1.0),
46 );
47
48 image_renderer
49 .render_image_onto(image_renderer.black())
50 .save("triangles.png")
51 .unwrap();
52}examples/circles.rs (lines 9-16)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 0.8,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_circle(DVec2::splat(16.0), 16.0, Srgba::new(1.0, 1.0, 1.0, 1.0));
19
20 image_renderer.render_circle_lines(
21 DVec2::splat(48.0),
22 16.0,
23 2.0,
24 Srgba::new(0.0, 0.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_arc(
28 DVec2::splat(32.0),
29 16.0,
30 0.0,
31 64,
32 PI,
33 Srgba::new(1.0, 0.0, 0.0, 1.0),
34 );
35
36 image_renderer.render_arc_lines(
37 DVec2::splat(32.0),
38 16.0,
39 PI,
40 64,
41 PI,
42 2.0,
43 Srgba::new(0.0, 1.0, 0.0, 1.0),
44 );
45
46 image_renderer.render_arc_lines(
47 DVec2::splat(32.0),
48 23.0 * 0.6,
49 0.75 * TAU,
50 64,
51 0.0,
52 23.0 * 0.2,
53 Srgba::new(0.0, 1.0, 1.0, 1.0),
54 );
55
56 image_renderer
57 .render_image_onto(image_renderer.black())
58 .save("circles.png")
59 .unwrap();
60}examples/rectangles.rs (lines 9-16)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 2.0,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_rectangle(
19 DVec2::splat(8.0),
20 16.0,
21 16.0,
22 DVec2::splat(0.0),
23 0.0,
24 Srgba::new(1.0, 1.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_rectangle(
28 dvec2(32.0, 32.0),
29 16.0,
30 16.0,
31 DVec2::splat(0.5),
32 -PI / 2.0,
33 Srgba::new(1.0, 0.0, 1.0, 1.0),
34 );
35
36 image_renderer.render_rectangle_lines(
37 DVec2::splat(40.0),
38 8.0,
39 16.0,
40 DVec2::splat(0.5),
41 0.0,
42 1.0,
43 Srgba::new(0.0, 0.0, 1.0, 1.0),
44 );
45
46 image_renderer.render_rectangle_lines(
47 DVec2::splat(40.0),
48 16.0,
49 16.0,
50 DVec2::splat(0.0),
51 0.0,
52 1.0,
53 Srgba::new(1.0, 0.0, 0.0, 1.0),
54 );
55
56 image_renderer.render_rectangle_lines(
57 DVec2::splat(40.0),
58 8.0,
59 16.0,
60 DVec2::splat(0.5),
61 TAU / 8.0,
62 1.0,
63 Srgba::new(0.0, 1.0, 0.0, 1.0),
64 );
65
66 image_renderer
67 .render_image_onto(image_renderer.black())
68 .save("rectangles.png")
69 .unwrap();
70}Additional examples can be found in:
pub fn get_font(&self) -> &FontArc
pub fn set_font(&mut self, font: FontArc)
pub fn reset(&mut self)
pub fn get_image(&self) -> &RgbaImage
Sourcepub fn render_image_onto(&self, image: RgbaImage) -> RgbaImage
pub fn render_image_onto(&self, image: RgbaImage) -> RgbaImage
Examples found in repository?
examples/lines.rs (line 24)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_line(
17 dvec2(0.0, 0.0),
18 dvec2(128.0, 128.0),
19 2.0,
20 Srgba::new(1.0, 0.0, 0.0, 1.0),
21 );
22
23 image_renderer
24 .render_image_onto(image_renderer.black())
25 .save("lines.png")
26 .unwrap();
27}More examples
examples/pixels.rs (line 23)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 7,
9 7,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_point(dvec2(1.0, 1.0), Srgba::new(1.0, 0.0, 0.0, 1.0));
17
18 image_renderer.render_point(dvec2(3.0, 3.0), Srgba::new(0.0, 1.0, 0.0, 1.0));
19
20 image_renderer.render_point(dvec2(5.0, 5.0), Srgba::new(0.0, 0.0, 1.0, 1.0));
21
22 image_renderer
23 .render_image_onto(image_renderer.black())
24 .save("pixels.png")
25 .unwrap();
26}examples/text.rs (line 43)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_text(
17 "Top Left",
18 dvec2(0.0, 0.0),
19 anchor2d::LGT,
20 24.0,
21 Srgba::new(1.0, 1.0, 1.0, 1.0),
22 );
23
24 image_renderer.render_text_outline(
25 "Center",
26 dvec2(64.0, 64.0),
27 anchor2d::CGC,
28 24.0,
29 1.0,
30 Srgba::new(1.0, 1.0, 1.0, 1.0),
31 Srgba::new(1.0, 0.0, 0.0, 1.0),
32 );
33
34 image_renderer.render_text(
35 "Bottom Right",
36 dvec2(128.0, 128.0),
37 anchor2d::RGB,
38 24.0,
39 Srgba::new(1.0, 1.0, 1.0, 1.0),
40 );
41
42 image_renderer
43 .render_image_onto(image_renderer.black())
44 .save("text.png")
45 .unwrap();
46}examples/triangles.rs (line 49)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 1.0,
13 DVec2::ZERO,
14 4,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_equilateral_triangle(
19 DVec2::splat(16.0),
20 16.0,
21 0.0,
22 Srgba::new(1.0, 1.0, 1.0, 1.0),
23 );
24
25 image_renderer.render_equilateral_triangle(
26 DVec2::splat(16.0),
27 16.0,
28 PI,
29 Srgba::new(1.0, 0.0, 0.0, 1.0),
30 );
31
32 image_renderer.render_equilateral_triangle_lines(
33 DVec2::splat(48.0),
34 16.0,
35 0.0,
36 2.0,
37 Srgba::new(0.0, 0.0, 1.0, 1.0),
38 );
39
40 image_renderer.render_equilateral_triangle_lines(
41 DVec2::splat(48.0),
42 16.0,
43 PI,
44 2.0,
45 Srgba::new(0.0, 1.0, 0.0, 1.0),
46 );
47
48 image_renderer
49 .render_image_onto(image_renderer.black())
50 .save("triangles.png")
51 .unwrap();
52}examples/circles.rs (line 57)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 0.8,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_circle(DVec2::splat(16.0), 16.0, Srgba::new(1.0, 1.0, 1.0, 1.0));
19
20 image_renderer.render_circle_lines(
21 DVec2::splat(48.0),
22 16.0,
23 2.0,
24 Srgba::new(0.0, 0.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_arc(
28 DVec2::splat(32.0),
29 16.0,
30 0.0,
31 64,
32 PI,
33 Srgba::new(1.0, 0.0, 0.0, 1.0),
34 );
35
36 image_renderer.render_arc_lines(
37 DVec2::splat(32.0),
38 16.0,
39 PI,
40 64,
41 PI,
42 2.0,
43 Srgba::new(0.0, 1.0, 0.0, 1.0),
44 );
45
46 image_renderer.render_arc_lines(
47 DVec2::splat(32.0),
48 23.0 * 0.6,
49 0.75 * TAU,
50 64,
51 0.0,
52 23.0 * 0.2,
53 Srgba::new(0.0, 1.0, 1.0, 1.0),
54 );
55
56 image_renderer
57 .render_image_onto(image_renderer.black())
58 .save("circles.png")
59 .unwrap();
60}examples/rectangles.rs (line 67)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 2.0,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_rectangle(
19 DVec2::splat(8.0),
20 16.0,
21 16.0,
22 DVec2::splat(0.0),
23 0.0,
24 Srgba::new(1.0, 1.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_rectangle(
28 dvec2(32.0, 32.0),
29 16.0,
30 16.0,
31 DVec2::splat(0.5),
32 -PI / 2.0,
33 Srgba::new(1.0, 0.0, 1.0, 1.0),
34 );
35
36 image_renderer.render_rectangle_lines(
37 DVec2::splat(40.0),
38 8.0,
39 16.0,
40 DVec2::splat(0.5),
41 0.0,
42 1.0,
43 Srgba::new(0.0, 0.0, 1.0, 1.0),
44 );
45
46 image_renderer.render_rectangle_lines(
47 DVec2::splat(40.0),
48 16.0,
49 16.0,
50 DVec2::splat(0.0),
51 0.0,
52 1.0,
53 Srgba::new(1.0, 0.0, 0.0, 1.0),
54 );
55
56 image_renderer.render_rectangle_lines(
57 DVec2::splat(40.0),
58 8.0,
59 16.0,
60 DVec2::splat(0.5),
61 TAU / 8.0,
62 1.0,
63 Srgba::new(0.0, 1.0, 0.0, 1.0),
64 );
65
66 image_renderer
67 .render_image_onto(image_renderer.black())
68 .save("rectangles.png")
69 .unwrap();
70}Additional examples can be found in:
pub fn transparent(&self) -> RgbaImage
Sourcepub fn black(&self) -> RgbaImage
pub fn black(&self) -> RgbaImage
Examples found in repository?
examples/lines.rs (line 24)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_line(
17 dvec2(0.0, 0.0),
18 dvec2(128.0, 128.0),
19 2.0,
20 Srgba::new(1.0, 0.0, 0.0, 1.0),
21 );
22
23 image_renderer
24 .render_image_onto(image_renderer.black())
25 .save("lines.png")
26 .unwrap();
27}More examples
examples/pixels.rs (line 23)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 7,
9 7,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_point(dvec2(1.0, 1.0), Srgba::new(1.0, 0.0, 0.0, 1.0));
17
18 image_renderer.render_point(dvec2(3.0, 3.0), Srgba::new(0.0, 1.0, 0.0, 1.0));
19
20 image_renderer.render_point(dvec2(5.0, 5.0), Srgba::new(0.0, 0.0, 1.0, 1.0));
21
22 image_renderer
23 .render_image_onto(image_renderer.black())
24 .save("pixels.png")
25 .unwrap();
26}examples/text.rs (line 43)
6fn main() {
7 let mut image_renderer = ImageRenderer::new(
8 128,
9 128,
10 1.0,
11 DVec2::ZERO,
12 4,
13 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
14 );
15
16 image_renderer.render_text(
17 "Top Left",
18 dvec2(0.0, 0.0),
19 anchor2d::LGT,
20 24.0,
21 Srgba::new(1.0, 1.0, 1.0, 1.0),
22 );
23
24 image_renderer.render_text_outline(
25 "Center",
26 dvec2(64.0, 64.0),
27 anchor2d::CGC,
28 24.0,
29 1.0,
30 Srgba::new(1.0, 1.0, 1.0, 1.0),
31 Srgba::new(1.0, 0.0, 0.0, 1.0),
32 );
33
34 image_renderer.render_text(
35 "Bottom Right",
36 dvec2(128.0, 128.0),
37 anchor2d::RGB,
38 24.0,
39 Srgba::new(1.0, 1.0, 1.0, 1.0),
40 );
41
42 image_renderer
43 .render_image_onto(image_renderer.black())
44 .save("text.png")
45 .unwrap();
46}examples/triangles.rs (line 49)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 1.0,
13 DVec2::ZERO,
14 4,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_equilateral_triangle(
19 DVec2::splat(16.0),
20 16.0,
21 0.0,
22 Srgba::new(1.0, 1.0, 1.0, 1.0),
23 );
24
25 image_renderer.render_equilateral_triangle(
26 DVec2::splat(16.0),
27 16.0,
28 PI,
29 Srgba::new(1.0, 0.0, 0.0, 1.0),
30 );
31
32 image_renderer.render_equilateral_triangle_lines(
33 DVec2::splat(48.0),
34 16.0,
35 0.0,
36 2.0,
37 Srgba::new(0.0, 0.0, 1.0, 1.0),
38 );
39
40 image_renderer.render_equilateral_triangle_lines(
41 DVec2::splat(48.0),
42 16.0,
43 PI,
44 2.0,
45 Srgba::new(0.0, 1.0, 0.0, 1.0),
46 );
47
48 image_renderer
49 .render_image_onto(image_renderer.black())
50 .save("triangles.png")
51 .unwrap();
52}examples/circles.rs (line 57)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 0.8,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_circle(DVec2::splat(16.0), 16.0, Srgba::new(1.0, 1.0, 1.0, 1.0));
19
20 image_renderer.render_circle_lines(
21 DVec2::splat(48.0),
22 16.0,
23 2.0,
24 Srgba::new(0.0, 0.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_arc(
28 DVec2::splat(32.0),
29 16.0,
30 0.0,
31 64,
32 PI,
33 Srgba::new(1.0, 0.0, 0.0, 1.0),
34 );
35
36 image_renderer.render_arc_lines(
37 DVec2::splat(32.0),
38 16.0,
39 PI,
40 64,
41 PI,
42 2.0,
43 Srgba::new(0.0, 1.0, 0.0, 1.0),
44 );
45
46 image_renderer.render_arc_lines(
47 DVec2::splat(32.0),
48 23.0 * 0.6,
49 0.75 * TAU,
50 64,
51 0.0,
52 23.0 * 0.2,
53 Srgba::new(0.0, 1.0, 1.0, 1.0),
54 );
55
56 image_renderer
57 .render_image_onto(image_renderer.black())
58 .save("circles.png")
59 .unwrap();
60}examples/rectangles.rs (line 67)
8fn main() {
9 let mut image_renderer = ImageRenderer::new(
10 64,
11 64,
12 2.0,
13 DVec2::splat(0.5),
14 1,
15 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
16 );
17
18 image_renderer.render_rectangle(
19 DVec2::splat(8.0),
20 16.0,
21 16.0,
22 DVec2::splat(0.0),
23 0.0,
24 Srgba::new(1.0, 1.0, 1.0, 1.0),
25 );
26
27 image_renderer.render_rectangle(
28 dvec2(32.0, 32.0),
29 16.0,
30 16.0,
31 DVec2::splat(0.5),
32 -PI / 2.0,
33 Srgba::new(1.0, 0.0, 1.0, 1.0),
34 );
35
36 image_renderer.render_rectangle_lines(
37 DVec2::splat(40.0),
38 8.0,
39 16.0,
40 DVec2::splat(0.5),
41 0.0,
42 1.0,
43 Srgba::new(0.0, 0.0, 1.0, 1.0),
44 );
45
46 image_renderer.render_rectangle_lines(
47 DVec2::splat(40.0),
48 16.0,
49 16.0,
50 DVec2::splat(0.0),
51 0.0,
52 1.0,
53 Srgba::new(1.0, 0.0, 0.0, 1.0),
54 );
55
56 image_renderer.render_rectangle_lines(
57 DVec2::splat(40.0),
58 8.0,
59 16.0,
60 DVec2::splat(0.5),
61 TAU / 8.0,
62 1.0,
63 Srgba::new(0.0, 1.0, 0.0, 1.0),
64 );
65
66 image_renderer
67 .render_image_onto(image_renderer.black())
68 .save("rectangles.png")
69 .unwrap();
70}Additional examples can be found in:
Sourcepub fn register_image(&mut self, image_name: String, image: RgbaImage)
pub fn register_image(&mut self, image_name: String, image: RgbaImage)
Examples found in repository?
examples/image_images.rs (lines 17-20)
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}Trait Implementations§
Source§impl Clone for ImageRenderer
impl Clone for ImageRenderer
Source§fn clone(&self) -> ImageRenderer
fn clone(&self) -> ImageRenderer
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Renderer for ImageRenderer
impl Renderer for ImageRenderer
fn render_point(&mut self, position: DVec2, color: Srgba)
fn render_line( &mut self, start: DVec2, end: DVec2, thickness: f64, color: Srgba, )
fn render_circle(&mut self, position: DVec2, radius: f64, color: Srgba)
fn render_circle_lines( &mut self, position: DVec2, radius: f64, thickness: f64, color: Srgba, )
fn render_arc( &mut self, position: DVec2, radius: f64, rotation: f64, sides: u8, arc: f64, color: Srgba, )
fn render_arc_lines( &mut self, position: DVec2, radius: f64, rotation: f64, sides: u8, arc: f64, thickness: f64, color: Srgba, )
fn render_text( &mut self, text: &str, position: DVec2, anchor: Anchor2D, size: f64, color: Srgba, )
fn render_text_outline( &mut self, text: &str, position: DVec2, anchor: Anchor2D, size: f64, outline_thickness: f64, color: Srgba, outline_color: Srgba, )
fn render_rectangle( &mut self, position: DVec2, width: f64, height: f64, offset: DVec2, rotation: f64, color: Srgba, )
fn render_rectangle_lines( &mut self, position: DVec2, width: f64, height: f64, offset: DVec2, rotation: f64, thickness: f64, color: Srgba, )
fn render_equilateral_triangle( &mut self, position: DVec2, radius: f64, rotation: f64, color: Srgba, )
fn render_equilateral_triangle_lines( &mut self, position: DVec2, radius: f64, rotation: f64, thickness: f64, color: Srgba, )
fn render_image( &mut self, image_name: &str, position: DVec2, width: f64, height: f64, offset: DVec2, rotation: f64, )
Auto Trait Implementations§
impl Freeze for ImageRenderer
impl !RefUnwindSafe for ImageRenderer
impl Send for ImageRenderer
impl Sync for ImageRenderer
impl Unpin for ImageRenderer
impl !UnwindSafe for ImageRenderer
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.