net.sourceforge.jiu.color.quantization
Class PopularityQuantizer
- RGBIndex, RGBQuantizer
public class PopularityQuantizer
Performs the popularity color quantization algorithm that maps an image to
the colors occurring most frequently in the input image.
The number of colors in the palette can be defined by the user of this
operation with
setPaletteSize(int).
Supported image types
The input image must implement
RGB24Image,
the output image must be of type
Paletted8Image.
Usage example
The following code snippet uses the default settings with a palette of 256 entries.
PopularityQuantizer quantizer = new PopularityQuantizer();
quantizer.setInputImage(image);
quantizer.setPaletteSize(256);
quantizer.process();
PixelImage quantizedImage = quantizer.getOutputImage();
Palette | createPalette()- Return a Palette object with the list of colors to be used in the quantization
process.
|
private Palette | determinePalette()
|
int | getPaletteSize()- Returns the number of colors in the destination image.
|
int | map(int[] origRgb, int[] quantizedRgb)- This method maps a triplet of intensity values to its quantized counterpart
and returns the palette index of that quantized color.
|
void | process()- This method does the actual work of the operation.
|
void | setMapping(boolean newValue)- Specifies whether this operation will map the image to the
new palette (true) or not (false).
|
void | setPaletteSize(int newPaletteSize)- Sets the number of colors that this operations is supposed to reduce
the original image to.
|
doNotMap
private boolean doNotMap
paletteSize
private int paletteSize
createPalette
public Palette createPalette()
Return a Palette object with the list of colors to be used in the quantization
process.
That palette may be fixed or created specifically for a given input image.
- createPalette in interface RGBQuantizer
- Palette object for destination image
getPaletteSize
public int getPaletteSize()
Returns the number of colors in the destination image.
If output is paletted, this is also the number of entries
in the palette.
- number of colors in the destination
map
public int map(int[] origRgb,
int[] quantizedRgb) This method maps a triplet of intensity values to its quantized counterpart
and returns the palette index of that quantized color.
The index values for the two arrays are taken from RGBIndex.
- map in interface RGBQuantizer
origRgb - the three samples red, green and blue for which a good match is searched in the palettequantizedRgb - will hold the three samples found to be closest to origRgb after the call to this method
- int index in the palette of the match quantizedRgb
setMapping
public void setMapping(boolean newValue)
Specifies whether this operation will map the image to the
new palette (true) or not (false).
The latter may be interesting if only the palette is required.
By default, this operation does map.
newValue - map to new image (true) or just search palette (false)
setPaletteSize
public void setPaletteSize(int newPaletteSize)
Sets the number of colors that this operations is supposed to reduce
the original image to.
newPaletteSize - the number of colors