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