Package net.sourceforge.jiu.color.quantization

# 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 final int`
`BLUE_BITS`
`private final int`
`BLUE_RIGHT_SHIFT`
`private final int[]`
`BLUE_VALUES`
`private final int`
`GREEN_BITS`
`private final int`
`GREEN_LEFT_SHIFT`
`private final int`
`GREEN_RIGHT_SHIFT`
`private final int[]`
`GREEN_VALUES`
`private int[]`
`PALETTE_BLUE`
`private int[]`
`PALETTE_GREEN`
`private int[]`
`PALETTE_RED`
`private final int`
`RED_BITS`
`private final int`
`RED_LEFT_SHIFT`
`private final int`
`RED_RIGHT_SHIFT`
`private final int[]`
`RED_VALUES`
`private final 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

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.
`final 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### 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

## Constructor Details

### UniformPaletteQuantizer

public UniformPaletteQuantizer(int redBits, int greenBits, int blueBits)

## Method Details

### 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 interface `RGBQuantizer`
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 interface `RGBQuantizer`
Parameters:
  `origRgb` - the three samples red, green and blue for which a good match is searched in the palette
  `quantizedRgb` - 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)

### process

public void process()
Description copied from class: `Operation`
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.

Overrides:
  `process` in class `Operation`