diff --git a/src/bin/main.rs b/src/bin/main.rs index 957d67a..86ff282 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -1,5 +1,6 @@ use image::io::Reader; use pixtra::canvas::Canvas; +use pixtra::utility::{count_colors, counted_colors_to_html}; use std::path::Path; // TODO: Turn images grey @@ -13,7 +14,10 @@ use std::path::Path; // Inverse colors fn main() { - let canvas = Canvas::new(4, 5); + let canvas = Canvas::load(&Path::new("testing.png")).unwrap(); + let colors = count_colors(&canvas); + let output = counted_colors_to_html(&colors); + println!("{}", output); canvas.save(Path::new("here.png")).expect("To be saved"); println!("Test"); } diff --git a/src/utility.rs b/src/utility.rs index 1254bc9..a9ca1bd 100644 --- a/src/utility.rs +++ b/src/utility.rs @@ -102,6 +102,14 @@ pub fn count_colors(c: &Canvas) -> HashMap { map } +pub fn counted_colors_to_html(map: &HashMap) -> String { + let mut pairs: Vec<(Pixel, usize)> = map.iter().map(|(x, y)| (x.clone(), y.clone())).collect(); + pairs.sort_by_key(|x| x.1); + pairs.reverse(); + let output: String = pairs.iter().map(|x| format!(" {} ({}, {}, {}) ", x.1, x.0.r, x.0.g, x.0.b, x.0.r, x.0.g, x.0.b).to_string()).collect(); + output +} + pub fn diff(c1: &Canvas, c2: &Canvas) -> Canvas { let c = Canvas::new(1, 1); c