Class 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 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
    • Constructor Detail

      • UniformPaletteQuantizer

        public UniformPaletteQuantizer​(int redBits,
                                       int greenBits,
                                       int blueBits)
    • 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 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

        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