com.jhlabs.image
Class QuantizeFilter
- BufferedImageOp, Cloneable
public class QuantizeFilter
A filter which quantizes an image to a set number of colors - useful for producing
images which are to be encoded using an index color model. The filter can perform
Floyd-Steinberg error-diffusion dithering if required. At present, the quantization
is done using an octtree algorithm but I eventually hope to add more quantization
methods such as median cut. Note: at present, the filter produces an image which
uses the RGB color model (because the application it was written for required it).
I hope to extend it to produce an IndexColorModel by request.
protected static int[] | matrix - Floyd-Steinberg dithering matrix.
|
protected int[] | filterPixels(int width, int height, int[] inPixels, Rectangle transformedSpace) - Actually filter the pixels.
|
boolean | getDither() - Return the dithering setting
|
int | getNumColors() - Get the number of colors to quantize to.
|
boolean | getSerpentine() - Return the serpentine setting
|
void | quantize(int[] inPixels, int[] outPixels, int width, int height, int numColors, boolean dither, boolean serpentine)
|
void | setDither(boolean dither) - Set whether to use dithering or not.
|
void | setNumColors(int numColors) - Set the number of colors to quantize to.
|
void | setSerpentine(boolean serpentine) - Set whether to use a serpentine pattern for return or not.
|
String | toString()
|
matrix
protected static final int[] matrix
Floyd-Steinberg dithering matrix.
filterPixels
protected int[] filterPixels(int width,
int height,
int[] inPixels,
Rectangle transformedSpace)
Actually filter the pixels.
- filterPixels in interface WholeImageFilter
width
- the image widthheight
- the image heightinPixels
- the image pixelstransformedSpace
- the output bounds
getDither
public boolean getDither()
Return the dithering setting
getNumColors
public int getNumColors()
Get the number of colors to quantize to.
getSerpentine
public boolean getSerpentine()
Return the serpentine setting
quantize
public void quantize(int[] inPixels,
int[] outPixels,
int width,
int height,
int numColors,
boolean dither,
boolean serpentine)
setDither
public void setDither(boolean dither)
Set whether to use dithering or not. If not, the image is posterized.
dither
- true to use dithering
setNumColors
public void setNumColors(int numColors)
Set the number of colors to quantize to.
numColors
- the number of colors. The default is 256.
setSerpentine
public void setSerpentine(boolean serpentine)
Set whether to use a serpentine pattern for return or not. This can reduce 'avalanche' artifacts in the output.
serpentine
- true to use serpentine pattern
toString
public String toString()