Struct color_quant::NeuQuant [] [src]

pub struct NeuQuant {
    // some fields omitted
}

Neural network based color quantizer.

Methods

impl NeuQuant

fn new(samplefac: i32, colors: usize, pixels: &[u8]) -> Self

Creates a new neuronal network and trains it with the supplied data.

Pixels are assumed to be in RGBA format. colors should be $>=64$. samplefac determines the faction of the sample that will be used to train the network. Its value must be in the range $[1, 30]$. A value of $1$ thus produces the best result but is also slowest. $10$ is a good compromise between speed and quality.

fn init(&mut self, pixels: &[u8])

Initializes the neuronal network and trains it with the supplied data.

This method gets called by Self::new.

fn map_pixel(&self, pixel: &mut [u8])

Maps the rgba-pixel in-place to the best-matching color in the color map.

fn index_of(&self, pixel: &[u8]) -> usize

Finds the best-matching index in the color map.

pixel is assumed to be in RGBA format.

fn color_map_rgba(&self) -> Vec<u8>

Returns the RGBA color map calculated from the sample.

fn color_map_rgb(&self) -> Vec<u8>

Returns the RGBA color map calculated from the sample.