com.jhlabs.image
Class OctTreeQuantizer

java.lang.Object
  extended by com.jhlabs.image.OctTreeQuantizer
All 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OctTreeQuantizer

public OctTreeQuantizer()
Method Detail

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.

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

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

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