Class UniformPaletteQuantizer
- java.lang.Object
-
- net.sourceforge.jiu.ops.Operation
-
- net.sourceforge.jiu.ops.ImageToImageOperation
-
- net.sourceforge.jiu.color.quantization.UniformPaletteQuantizer
-
- All Implemented Interfaces:
RGBQuantizer
,RGBIndex
public class UniformPaletteQuantizer extends ImageToImageOperation implements RGBIndex, RGBQuantizer
A color quantizer that maps to a palette which is equidistantly distributed in the RGB color cube. Equidistantly distributed only within each channel.- Author:
- Marco Schmidt
-
-
Field Summary
Fields Modifier and Type Field Description private int
BLUE_BITS
private int
BLUE_RIGHT_SHIFT
private int[]
BLUE_VALUES
private int
GREEN_BITS
private int
GREEN_LEFT_SHIFT
private int
GREEN_RIGHT_SHIFT
private int[]
GREEN_VALUES
private int[]
PALETTE_BLUE
private int[]
PALETTE_GREEN
private int[]
PALETTE_RED
private int
RED_BITS
private int
RED_LEFT_SHIFT
private int
RED_RIGHT_SHIFT
private int[]
RED_VALUES
private int
TOTAL_BITS
-
Fields inherited from interface net.sourceforge.jiu.data.RGBIndex
INDEX_BLUE, INDEX_GREEN, INDEX_RED
-
-
Constructor Summary
Constructors Constructor Description UniformPaletteQuantizer(int redBits, int greenBits, int blueBits)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Palette
createPalette()
Return a Palette object with the list of colors to be used in the quantization process.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.int
mapToIndex(int red, int green, int blue)
void
process()
This method does the actual work of the operation.private void
process(RGB24Image in, Paletted8Image out)
-
Methods inherited from class net.sourceforge.jiu.ops.ImageToImageOperation
canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage
-
Methods inherited from class net.sourceforge.jiu.ops.Operation
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
-
-
-
-
Field Detail
-
RED_BITS
private final int RED_BITS
-
RED_LEFT_SHIFT
private final int RED_LEFT_SHIFT
-
RED_RIGHT_SHIFT
private final int RED_RIGHT_SHIFT
-
RED_VALUES
private final int[] RED_VALUES
-
GREEN_BITS
private final int GREEN_BITS
-
GREEN_LEFT_SHIFT
private final int GREEN_LEFT_SHIFT
-
GREEN_RIGHT_SHIFT
private final int GREEN_RIGHT_SHIFT
-
GREEN_VALUES
private final int[] GREEN_VALUES
-
BLUE_BITS
private final int BLUE_BITS
-
BLUE_RIGHT_SHIFT
private final int BLUE_RIGHT_SHIFT
-
BLUE_VALUES
private final int[] BLUE_VALUES
-
TOTAL_BITS
private final int TOTAL_BITS
-
PALETTE_RED
private int[] PALETTE_RED
-
PALETTE_GREEN
private int[] PALETTE_GREEN
-
PALETTE_BLUE
private int[] PALETTE_BLUE
-
-
Method Detail
-
createPalette
public Palette createPalette()
Description copied from interface:RGBQuantizer
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.- Specified by:
createPalette
in interfaceRGBQuantizer
- Returns:
- Palette object for destination image
-
map
public int map(int[] origRgb, int[] quantizedRgb)
Description copied from interface:RGBQuantizer
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.- Specified by:
map
in interfaceRGBQuantizer
- Parameters:
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- Returns:
- int index in the palette of the match quantizedRgb
-
mapToIndex
public final int mapToIndex(int red, int green, int blue)
-
process
private void process(RGB24Image in, Paletted8Image out)
-
-