com.jhlabs.image

Class OctTreeQuantizer

Implemented Interfaces:
Quantizer

public class OctTreeQuantizer
extends java.lang.Object
implements Quantizer

An image Quantizer based on the Octree algorithm. This is a very basic implementation at present and could be much improved by picking the nodes to reduce more carefully (i.e. not completely at random) when I get the time.

Constructor Summary

OctTreeQuantizer()

Method Summary

void
addPixels(int[] pixels, int offset, int count)
Add pixels to the quantizer.
int[]
buildColorTable()
Build the color table.
void
buildColorTable(int[] inPixels, int[] table)
A quick way to use the quantizer.
int
getIndexForColor(int rgb)
Get the color table index for a color.
void
setup(int numColors)
Initialize the quantizer.

Constructor Details

OctTreeQuantizer

public OctTreeQuantizer()

Method Details

addPixels

public void addPixels(int[] pixels,
                      int offset,
                      int count)
Add pixels to the quantizer.
Specified by:
addPixels in interface Quantizer
Parameters:
pixels - the array of ARGB pixels
offset - the offset into the array
count - the count of pixels

buildColorTable

public int[] buildColorTable()
Build the color table.
Specified by:
buildColorTable in interface Quantizer
Returns:
the color table

buildColorTable

public void buildColorTable(int[] inPixels,
                            int[] table)
A quick way to use the quantizer. Just create a table the right size and pass in the pixels.
Parameters:
inPixels - the input colors
table - the output color table

getIndexForColor

public int getIndexForColor(int rgb)
Get the color table index for a color.
Specified by:
getIndexForColor in interface Quantizer
Parameters:
rgb - the color
Returns:
the index

setup

public void setup(int numColors)
Initialize the quantizer. This should be called before adding any pixels.
Specified by:
setup in interface Quantizer
Parameters:
numColors - the number of colors we're quantizing to.