Java Platform 1.2
Beta 4

Class java.awt.image.ComponentColorModel

java.lang.Object
  |
  +--java.awt.image.ColorModel
        |
        +--java.awt.image.ComponentColorModel

public class ComponentColorModel
extends ColorModel
A ColorModel class that works with pixel values which represent color and alpha information as separate samples and which store each sample in a separate data element. This class can be used with an arbitrary ColorSpace. The number of color samples in the pixel values must be same as the number of color components in the ColorSpace. There may be a single alpha sample. For those methods which use a primitive array pixel representation of type transferType, the array length is the same as the number of color and alpha samples. Color samples are stored first in the array followed by the alpha sample, if present. The order of the color samples is specified by the ColorSpace. Typically, this order reflects the name of the color space type, e.g. for TYPE_RGB, index 0 corresponds to red, index 1 to green, and index 2 to blue. The transfer types supported are DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, and DataBuffer.TYPE_INT.

The translation from pixel values to color/alpha components for display or processing purposes is a one-to-one correspondence of samples to components. The number of bits in a color or alpha sample of a pixel value may not be the same as the number of bits for the corresponding color or alpha component passed to the ComponentColorModel constructor. This class assumes that the least significant n bits of a sample value hold the component value, where n is the number of significant bits for the component passed to the constructor. It also assumes that any higher order bits in a sample value are zero.

Methods which use a single int pixel representation will throw an IllegalArgumentException, unless the number of components for the ComponentColorModel is one, i.e. a single color component and no alpha.

A ComponentColorModel can be used in conjunction with a ComponentSampleModel, a BandedSampleModel, or a PixelInterleavedSampleModel to construct a BufferedImage.

See Also:
ColorModel, ColorSpace, ComponentSampleModel, BandedSampleModel, PixelInterleavedSampleModel, BufferedImage

Fields inherited from class java.awt.image.ColorModel
pixel_bits , transferType
 
Constructor Summary
ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
          Constructs a ComponentColorModel from the specified parameters.
 
Method Summary
 ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
          Forces the Raster data to match the state specified in the isAlphaPremultiplied variable, assuming the data is currently correctly described by this ColorModel.
 SampleModel createCompatibleSampleModel(int w, int h)
          Creates a SampleModel with the specified width and height, that has a data layout compatible with this ColorModel.
 WritableRaster createCompatibleWritableRaster(int w, int h)
          Creates a WritableRaster with the specified width and height, that has a data layout (SampleModel) compatible with this ColorModel.
 boolean equals(Object obj)
          Compares this color model with another for equality.
 int getAlpha(int pixel)
          Returns the alpha component for the specified pixel, scaled from 0 to 255. The pixel value is specified as an int.
 int getAlpha(Object inData)
          Returns the alpha component for the specified pixel, scaled from 0 to 255. The pixel value is specified by an array of data elements of type transferType passed in as an object reference.
 WritableRaster getAlphaRaster(WritableRaster raster)
          Returns a Raster representing the alpha channel of an image, extracted from the input Raster.
 int getBlue(int pixel)
          Returns the blue color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int getBlue(Object inData)
          Returns the blue color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int[] getComponents(int pixel, int[] components, int offset)
          Returns an array of unnormalized color/alpha components given a pixel in this ColorModel.
 int[] getComponents(Object pixel, int[] components, int offset)
          Returns an array of unnormalized color/alpha components given a pixel in this ColorModel.
 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.
 int getGreen(int pixel)
          Returns the green color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int getGreen(Object inData)
          Returns the green color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int getRed(int pixel)
          Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int getRed(Object inData)
          Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary.
 int getRGB(int pixel)
          Returns the color/alpha components of the pixel in the default RGB color model format.
 int getRGB(Object inData)
          Returns the color/alpha components for the specified pixel in the default RGB color model format.
 boolean isCompatibleRaster(Raster raster)
          Returns true if raster is compatible with this ColorModel and false if it is not.
 boolean isCompatibleSampleModel(SampleModel sm)
          Checks if the SampleModel is compatible with this ColorModel.
 int setDataElement(int[] components, int offset)
          Returns a pixel value represented as an int in this ColorModel, given an array of unnormalized color/alpha components.
 Object setDataElements(int[] components, int offset, Object obj)
          Returns a data element array representation of a pixel in this ColorModel, given an array of unnormalized color/alpha components.
 
Methods inherited from class java.awt.image.ColorModel
finalize , getColorSpace , getComponentSize , getComponentSize , getDataElement , getNormalizedComponents , getNumColorComponents , getNumComponents , getPixelSize , getRGBdefault , getTransparency , getUnnormalizedComponents , hasAlpha , isAlphaPremultiplied , toString
 
Methods inherited from class java.lang.Object
clone , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

Constructor Detail

ComponentColorModel

public ComponentColorModel(ColorSpace colorSpace,
                           int[] bits,
                           boolean hasAlpha,
                           boolean isAlphaPremultiplied,
                           int transparency,
                           int transferType)
Constructs a ComponentColorModel from the specified parameters. Color components will be in the specified ColorSpace. The bits array specifies the number of significant bits per color and alpha component. Its length should be the number of components in the ColorSpace if there is no alpha information in the pixel values, or one more than this number if there is alpha information. An IllegalArgumentException will be thrown if the length of the array does not match the number of components. hasAlpha indicates whether alpha information is present. If hasAlpha is true, then the boolean isAlphaPremultiplied specifies how to interpret color and alpha samples in pixel values. If the boolean is true, color samples are assumed to have been multiplied by the alpha sample. The transparency specifies what alpha values can be represented by this color model. The transfer type is the type of primitive array used to represent pixel values. Note that the bits array contains the number of significant bits per color/alpha component after the translation from pixel values.
Parameters:
colorSpace - ColorSpace associated with this color model.
bits - Number of significant bits per component.
hasAlpha - If true, this color model supports alpha.
isAlphaPremultiplied - If true, alpha is premultiplied.
transparency - Specifies what alpha values can be represented by this color model.
transferType - Specifies the type of primitive array used to represent pixel values.
See Also:
ColorSpace, Transparency
Method Detail

getRed

public int getRed(int pixel)
Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the red value will be 0).
Overrides:
getRed in class ColorModel

getGreen

public int getGreen(int pixel)
Returns the green color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the green value will be 0).
Overrides:
getGreen in class ColorModel

getBlue

public int getBlue(int pixel)
Returns the blue color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the blue value will be 0).
Overrides:
getBlue in class ColorModel

getAlpha

public int getAlpha(int pixel)
Returns the alpha component for the specified pixel, scaled from 0 to 255. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel.
Overrides:
getAlpha in class ColorModel

getRGB

public int getRGB(int pixel)
Returns the color/alpha components of the pixel in the default RGB color model format. A color conversion is done if necessary. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel. The returned value will be in a non pre-multiplied format, i.e. if the alpha is premultiplied, this method will divide it out of the color components (if the alpha value is 0, the color values will be 0).
Overrides:
getRGB in class ColorModel

getRed

public int getRed(Object inData)
Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the red value will be 0). If inData is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if inData is not large enough to hold a pixel value for this ColorModel.
Overrides:
getRed in class ColorModel

getGreen

public int getGreen(Object inData)
Returns the green color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the green value will be 0). If inData is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if inData is not large enough to hold a pixel value for this ColorModel.
Overrides:
getGreen in class ColorModel

getBlue

public int getBlue(Object inData)
Returns the blue color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. A color conversion is done if necessary. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. The returned value will be a non pre-multiplied value, i.e. if the alpha is premultiplied, this method will divide it out before returning the value (if the alpha value is 0, the blue value will be 0). If inData is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if inData is not large enough to hold a pixel value for this ColorModel.
Overrides:
getBlue in class ColorModel

getAlpha

public int getAlpha(Object inData)
Returns the alpha component for the specified pixel, scaled from 0 to 255. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. If inData is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if inData is not large enough to hold a pixel value for this ColorModel.
Overrides:
getAlpha in class ColorModel

getRGB

public int getRGB(Object inData)
Returns the color/alpha components for the specified pixel in the default RGB color model format. A color conversion is done if necessary. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. If inData is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if inData is not large enough to hold a pixel value for this ColorModel. The returned value will be in a non pre-multiplied format, i.e. if the alpha is premultiplied, this method will divide it out of the color components (if the alpha value is 0, the color values will be 0).
Overrides:
getRGB in class ColorModel
See Also:
ColorModel.getRGBdefault()

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 will be 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 will be returned.
Overrides:
getDataElements in class ColorModel
See Also:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

getComponents

public int[] getComponents(int pixel,
                           int[] components,
                           int offset)
Returns an array of unnormalized color/alpha components given a pixel in this ColorModel. The pixel value is specified as an int. An IllegalArgumentException will be thrown if there is more than one component in this ColorModel. If the components array is null, a new array will be allocated. The components array will be returned. Color/alpha components are stored in the components array starting at offset (even if the array is allocated by this method). An ArrayIndexOutOfBoundsException is thrown if the components array is not null and is not large enough to hold all the color and alpha components (starting at offset).
Overrides:
getComponents in class ColorModel

getComponents

public int[] getComponents(Object pixel,
                           int[] components,
                           int offset)
Returns an array of unnormalized color/alpha components given a pixel in this ColorModel. The pixel value is specified by an array of data elements of type transferType passed in as an object reference. If pixel is not a primitive array of type transferType, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if pixel is not large enough to hold a pixel value for this ColorModel. If the components array is null, a new array will be allocated. The components array will be returned. Color/alpha components are stored in the components array starting at offset (even if the array is allocated by this method). An ArrayIndexOutOfBoundsException is thrown if the components array is not null and is not large enough to hold all the color and alpha components (starting at offset).
Overrides:
getComponents in class ColorModel

setDataElement

public int setDataElement(int[] components,
                          int offset)
Returns a pixel value represented as an int in this ColorModel, given an array of unnormalized color/alpha components. This method will throw an IllegalArgumentException if there is more than one component in this ColorModel. An ArrayIndexOutOfBoundsException is thrown if the components array is not large enough to hold all the color and alpha components (starting at offset).

setDataElements

public Object setDataElements(int[] components,
                              int offset,
                              Object obj)
Returns a data element array representation of a pixel in this ColorModel, given an array of unnormalized color/alpha components. This array can then be passed to the setDataElements method of a WritableRaster object. An ArrayIndexOutOfBoundsException is thrown if the components array is not large enough to hold all the color and alpha components (starting at offset). If the obj variable is null, a new array will be allocated. If obj is not null, it must be a primitive array of type transferType; otherwise, a ClassCastException is thrown. An ArrayIndexOutOfBoundsException is thrown if obj is not large enough to hold a pixel value for this ColorModel.
Overrides:
setDataElements in class ColorModel
See Also:
WritableRaster.setDataElements(int, int, java.lang.Object), SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)

coerceData

public ColorModel coerceData(WritableRaster raster,
                             boolean isAlphaPremultiplied)
Forces the Raster data to match the state specified in the isAlphaPremultiplied variable, assuming the data is currently correctly described by this ColorModel. It may multiply or divide the color Raster data by alpha, or do nothing if the data is in the correct state. If the data needs to be coerced, this method will also return an instance of this ColorModel with the isAlphaPremultiplied flag set appropriately.
Overrides:
coerceData in class ColorModel

isCompatibleRaster

public boolean isCompatibleRaster(Raster raster)
Returns true if raster is compatible with this ColorModel and false if it is not.
Overrides:
isCompatibleRaster in class ColorModel

createCompatibleWritableRaster

public WritableRaster createCompatibleWritableRaster(int w,
                                                     int h)
Creates a WritableRaster with the specified width and height, that has a data layout (SampleModel) compatible with this ColorModel.
Overrides:
createCompatibleWritableRaster in class ColorModel
See Also:
WritableRaster, SampleModel

createCompatibleSampleModel

public SampleModel createCompatibleSampleModel(int w,
                                               int h)
Creates a SampleModel with the specified width and height, that has a data layout compatible with this ColorModel.
Overrides:
createCompatibleSampleModel in class ColorModel
See Also:
SampleModel

isCompatibleSampleModel

public boolean isCompatibleSampleModel(SampleModel sm)
Checks if the SampleModel is compatible with this ColorModel.
Overrides:
isCompatibleSampleModel in class ColorModel
See Also:
SampleModel

getAlphaRaster

public WritableRaster getAlphaRaster(WritableRaster raster)
Returns a Raster representing the alpha channel of an image, extracted from the input Raster. This method assumes that Rasters associated with this ColorModel store the alpha band, if present, as the last band of image data. Returns null if there is no separate spatial alpha channel associated with this ColorModel. This method will create a new Raster (but will share the data array).
Overrides:
getAlphaRaster in class ColorModel

equals

public boolean equals(Object obj)
Compares this color model with another for equality.
Overrides:
equals in class ColorModel

Java Platform 1.2
Beta 4

Submit a bug or feature
Submit comments/suggestions about new javadoc look
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.
This documentation was generated with a post-Beta4 version of Javadoc.