Class InverseColorMapIndexColorModel

java.lang.Object
java.awt.image.ColorModel
java.awt.image.IndexColorModel
com.twelvemonkeys.image.InverseColorMapIndexColorModel
All Implemented Interfaces:
Transparency

public class InverseColorMapIndexColorModel extends IndexColorModel
A faster implementation of IndexColorModel, that is backed by an inverse color-map, for fast look-ups.
Version:
$Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/image/InverseColorMapIndexColorModel.java#1 $
  • Field Details

  • Constructor Details

    • InverseColorMapIndexColorModel

      public InverseColorMapIndexColorModel(IndexColorModel pColorModel)
      Creates an InverseColorMapIndexColorModel from an existing IndexColorModel.
      Parameters:
      pColorModel - the color model to create from.
      Throws:
      IllegalArgumentException - if pColorModel is null
    • InverseColorMapIndexColorModel

      private InverseColorMapIndexColorModel(IndexColorModel pColorModel, int[] pRGBs)
    • InverseColorMapIndexColorModel

      public InverseColorMapIndexColorModel(int pNumBits, int pSize, int[] pRGBs, int pStart, boolean pAlpha, int pTransparentIndex, int pTransferType)
      Creates an InverseColorMapIndexColorModel from the given array of RGB components, plus one transparent index.
      Parameters:
      pNumBits - the number of bits each pixel occupies
      pSize - the size of the color component arrays
      pRGBs - the array of packed RGB color components
      pStart - the starting offset of the first color component
      pAlpha - indicates whether alpha values are contained in pRGBs
      pTransparentIndex - the index of the transparent pixel
      pTransferType - the data type of the array used to represent pixels
      Throws:
      IllegalArgumentException - if bits is less than 1 or greater than 16, or if size is less than 1
      See Also:
    • InverseColorMapIndexColorModel

      public InverseColorMapIndexColorModel(int pNumBits, int pSize, byte[] pReds, byte[] pGreens, byte[] pBlues, int pTransparentIndex)
      Creates an InverseColorMapIndexColorModel from the given arrays of red, green, and blue components, plus one transparent index.
      Parameters:
      pNumBits - the number of bits each pixel occupies
      pSize - the size of the color component arrays
      pReds - the array of red color components
      pGreens - the array of green color components
      pBlues - the array of blue color components
      pTransparentIndex - the index of the transparent pixel
      Throws:
      IllegalArgumentException - if bits is less than 1 or greater than 16, or if size is less than 1
      See Also:
    • InverseColorMapIndexColorModel

      public InverseColorMapIndexColorModel(int pNumBits, int pSize, byte[] pReds, byte[] pGreens, byte[] pBlues)
      Creates an InverseColorMapIndexColorModel from the given arrays of red, green, and blue components.
      Parameters:
      pNumBits - the number of bits each pixel occupies
      pSize - the size of the color component arrays
      pReds - the array of red color components
      pGreens - the array of green color components
      pBlues - the array of blue color components
      Throws:
      IllegalArgumentException - if bits is less than 1 or greater than 16, or if size is less than 1
      See Also:
  • Method Details

    • getRGBs

      private static int[] getRGBs(IndexColorModel pColorModel)
      Creates a defensive copy of the RGB color map in the given IndexColorModel.
      Parameters:
      pColorModel - the indexed color model to get RGB values from
      Returns:
      the RGB color map
    • getWhiteIndex

      private int getWhiteIndex()
    • create

      public static IndexColorModel create(Image pImage, int pNumCols, int pFlags)
      Creates an IndexColorModel optimized for the given Image.
      Parameters:
      pImage - the Image containing the RGB samples
      pNumCols - the maximum number of colors in the IndexColorModel
      pFlags - flags
      Returns:
      a new optimized IndexColorModel
    • getDataElements

      public Object getDataElements(int rgb, Object pixel)
      Returns a data element array representation of a pixel in this ColorModel, given an integer pixel representation in the default RGB color model. This array can then be passed to the setDataElements method of a WritableRaster object. If the pixel variable is null, a new array is allocated. If pixel is not null, it must be a primitive array of type transferType; otherwise, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if pixel is not large enough to hold a pixel value for this ColorModel. The pixel array is returned.

      Since OpaqueIndexColorModel can be subclassed, subclasses inherit the implementation of this method and if they don't override it then they throw an exception if they use an unsupported transferType. #param rgb the integer pixel representation in the default RGB color model #param pixel the specified pixel #return an array representation of the specified pixel in this OpaqueIndexColorModel. #throws ClassCastException if pixel is not a primitive array of type transferType #throws ArrayIndexOutOfBoundsException if pixel is not large enough to hold a pixel value for this ColorModel #throws UnsupportedOperationException if transferType is invalid

      Overrides:
      getDataElements in class IndexColorModel
      See Also:
    • installpixel

      private Object installpixel(Object pixel, int pix)
    • toString

      public String toString()
      Overrides:
      toString in class IndexColorModel