find_islands/
find-islands.rs1use pixtra::canvas::Canvas;
2use std::collections::HashMap;
3use pixtra::pixels::{ColorTrait, Colors};
4use pixtra::utility::count_colors;
5use std::path::Path;
6
7fn main() {
8 let canvas = Canvas::load(Path::new("assets/small_green_islands.png")).unwrap();
9 let count = count_colors(&canvas);
10 for (key, value) in count.iter() {
11 println!("{}: {}", key, value);
12 }
13 let islands = canvas.find_islands(&Colors::GREEN);
14 println!("Size of islands: {}", islands.len());
15 for (i, island) in islands.iter().enumerate() {
16 println!("Island {} has {} points", i + 1, island.points.len());
17 }
18 let count = count_colors(&canvas);
19 for (key, value) in count.iter() {
20 println!("{}: {}", key, value);
21 }
22 let color_one = canvas.get_pixel(islands[0].points[0].x, islands[0].points[0].y);
23 let color_two = canvas.get_pixel(islands[1].points[0].x, islands[1].points[0].y);
24 println!("Color from island one: {}", color_one);
25 println!("Color from island one: {}", color_two);
26 let mut hashmap = HashMap::new();
27 for c in islands[0].points.iter() {
28 hashmap.insert(c, "");
29 }
30 println!("Island 1 hashmap: {}", hashmap.len());
31 let mut hashmap = HashMap::new();
32 for c in islands[1].points.iter() {
33 hashmap.insert(c, "");
34 }
35 println!("Island 2 hashmap: {}", hashmap.len());
36
37
38}