47 lines
1.2 KiB
Rust
47 lines
1.2 KiB
Rust
use tiny_skia::*;
|
|
|
|
fn main() {
|
|
let mut paint1 = Paint::default();
|
|
paint1.set_color_rgba8(50, 127, 150, 200);
|
|
paint1.anti_alias = true;
|
|
|
|
let mut paint2 = Paint::default();
|
|
paint2.set_color_rgba8(220, 140, 75, 180);
|
|
|
|
let path1 = {
|
|
let mut pb = PathBuilder::new();
|
|
pb.move_to(60.0, 60.0);
|
|
pb.line_to(160.0, 940.0);
|
|
pb.cubic_to(380.0, 840.0, 660.0, 800.0, 940.0, 800.0);
|
|
pb.cubic_to(740.0, 460.0, 440.0, 160.0, 60.0, 60.0);
|
|
pb.close();
|
|
pb.finish().unwrap()
|
|
};
|
|
|
|
let path2 = {
|
|
let mut pb = PathBuilder::new();
|
|
pb.move_to(940.0, 60.0);
|
|
pb.line_to(840.0, 940.0);
|
|
pb.cubic_to(620.0, 840.0, 340.0, 800.0, 60.0, 800.0);
|
|
pb.cubic_to(260.0, 460.0, 560.0, 160.0, 940.0, 60.0);
|
|
pb.close();
|
|
pb.finish().unwrap()
|
|
};
|
|
|
|
let mut pixmap = Pixmap::new(1000, 1000).unwrap();
|
|
pixmap.fill_path(
|
|
&path1,
|
|
&paint1,
|
|
FillRule::Winding,
|
|
Transform::identity(),
|
|
None,
|
|
);
|
|
pixmap.fill_path(
|
|
&path2,
|
|
&paint2,
|
|
FillRule::Winding,
|
|
Transform::identity(),
|
|
None,
|
|
);
|
|
pixmap.save_png("image.png").unwrap();
|
|
}
|