find_islands/
find-islands.rs

1use 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}