hairline/
hairline.rs

1use tiny_skia::*;
2
3// This example demonstrates thin paths rendering.
4
5fn main() {
6    let mut pb = PathBuilder::new();
7    pb.move_to(50.0, 100.0);
8    pb.cubic_to(130.0, 20.0, 390.0, 120.0, 450.0, 30.0);
9    let path = pb.finish().unwrap();
10
11    let mut paint = Paint::default();
12    paint.set_color_rgba8(50, 127, 150, 200);
13    paint.anti_alias = true;
14
15    let mut pixmap = Pixmap::new(500, 500).unwrap();
16    let mut transform = Transform::identity();
17    for i in 0..20 {
18        let mut stroke = Stroke::default();
19        stroke.width = 2.0 - (i as f32 / 10.0);
20        pixmap.stroke_path(&path, &paint, &stroke, transform, None);
21        transform = transform.pre_translate(0.0, 20.0);
22    }
23
24    pixmap.save_png("image.png").unwrap();
25}