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/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/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.render_text(
43 "Multiple\nLines",
44 dvec2(32.0, 32.0),
45 anchor2d::CGC,
46 24.0,
47 Srgba::new(1.0, 0.0, 0.0, 1.0),
48 );
49
50 image_renderer
51 .render_image_onto(image_renderer.black())
52 .save("text.png")
53 .unwrap();
54}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/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/text.rs (line 51)
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.render_text(
43 "Multiple\nLines",
44 dvec2(32.0, 32.0),
45 anchor2d::CGC,
46 24.0,
47 Srgba::new(1.0, 0.0, 0.0, 1.0),
48 );
49
50 image_renderer
51 .render_image_onto(image_renderer.black())
52 .save("text.png")
53 .unwrap();
54}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/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/text.rs (line 51)
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.render_text(
43 "Multiple\nLines",
44 dvec2(32.0, 32.0),
45 anchor2d::CGC,
46 24.0,
47 Srgba::new(1.0, 0.0, 0.0, 1.0),
48 );
49
50 image_renderer
51 .render_image_onto(image_renderer.black())
52 .save("text.png")
53 .unwrap();
54}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 · Source§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 UnsafeUnpin 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.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§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.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.