material_colors/quantize/
quantizer_map.rs1use super::{Quantizer, QuantizerResult};
2use crate::{color::Argb, IndexMap};
3
4#[derive(Default)]
5pub struct QuantizerMap;
6
7impl Quantizer for QuantizerMap {
8 fn quantize(pixels: &[Argb], _max_colors: usize) -> QuantizerResult {
9 let mut color_to_count = IndexMap::<Argb, u32>::default();
10
11 for pixel in pixels {
12 color_to_count
13 .entry(*pixel)
14 .and_modify(|current_pixel_count| *current_pixel_count += 1)
15 .or_insert(1);
16 }
17
18 QuantizerResult {
19 color_to_count,
20 input_pixel_to_cluster_pixel: IndexMap::default(),
21 }
22 }
23}