|
Java Platform 1.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.image.ColorModel | +--java.awt.image.ComponentColorModel
A ColorModel
class that works with pixel values that
represent color and alpha information as separate samples and that
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 that 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. For example, 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 might 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 that use a single int pixel representation throw
an IllegalArgumentException
, unless the number of components
for the ComponentColorModel
is one--in other words, 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
.
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. |
int |
getAlpha(Object inData)
Returns the alpha component for the specified pixel, scaled from 0 to 255. |
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. |
int |
getBlue(Object inData)
Returns the blue color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace , sRGB. |
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 . |
int |
getDataElement(int[] components,
int offset)
Returns a pixel value represented as an int in this ColorModel ,
given an array of unnormalized color/alpha components. |
Object |
getDataElements(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. |
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. |
int |
getGreen(Object inData)
Returns the green color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace , sRGB. |
int |
getRed(int pixel)
Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. |
int |
getRed(Object inData)
Returns the red color component for the specified pixel, scaled from 0 to 255 in the default RGB ColorSpace, sRGB. |
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 ; false if it is not. |
boolean |
isCompatibleSampleModel(SampleModel sm)
Checks whether or not the specified SampleModel
is compatible with this ColorModel . |
Methods inherited from class java.awt.image.ColorModel |
finalize,
getColorSpace,
getComponentSize,
getComponentSize,
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 |
public ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
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
is 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 transferType
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.colorSpace
- The ColorSpace
associated with this color model.bits
- The 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.bits
array does not match the number of components.ColorSpace
,
Transparency
Method Detail |
public int getRed(int pixel)
pixel
- The pixel from which you want to get the red color component.ColorModel
.public int getGreen(int pixel)
pixel
- The pixel from which you want to get the green color component.ColorModel
.public int getBlue(int pixel)
pixel
- The pixel from which you want to get the blue color component.ColorModel
.public int getAlpha(int pixel)
pixel
- The pixel from which you want to get the alpha component.ColorModel
.public int getRGB(int pixel)
pixel
- The pixel from which you want to get the color/alpha components.ColorModel
.public int getRed(Object inData)
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. If the
alpha is premultiplied, this method divides it out before returning
the value (if the alpha value is 0, the red value will be 0).inData
- The pixel from which you want to get the red color component,
specified by an array of data elements of type transferType
.inData
is not a primitive array
of type transferType
.inData
is not
large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer
types: DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.public int getGreen(Object inData)
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 is a non pre-multiplied
value. If the alpha is premultiplied, this method divides it out before
returning the value (if the alpha value is 0, the green value will be 0).inData
- The pixel from which you want to get the green color component,
specified by an array of data elements of type transferType
.inData
is not a primitive array
of type transferType
.inData
is not
large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.public int getBlue(Object inData)
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 is a non pre-multiplied
value. If the alpha is premultiplied, this method divides it out before
returning the value (if the alpha value is 0, the blue value will be 0).inData
- The pixel from which you want to get the blue color component,
specified by an array of data elements of type transferType
.inData
is not a primitive array
of type transferType
.inData
is not
large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.public int getAlpha(Object inData)
transferType
passed in as an
object reference.inData
- The pixel from which you want to get the alpha component,
specified by an array of data elements of type transferType
.inData
is not a primitive array
of type transferType
.inData
is not
large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.public int getRGB(Object inData)
transferType
passed
in as an object reference.
The returned value is in a non pre-multiplied format. If
the alpha is premultiplied, this method divides it out of the
color components (if the alpha value is 0, the color values will be 0).inData
- The pixel from which you want to get the color/alpha components,
specified by an array of data elements of type transferType
.inData
is not a primitive array
of type transferType
.inData
is not
large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.ColorModel.getRGBdefault()
public Object getDataElements(int rgb, Object pixel)
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
parameter is null, a new array is allocated.rgb
- pixel
- The integer representation of the pixel.pixel
is not null and
is not a primitive array of type transferType
.pixel
is
not large enough to hold a pixel value for this
ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.WritableRaster.setDataElements(int, int, java.lang.Object)
,
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel
. Color/alpha components are
stored in the components
array starting at offset
(even if the array is allocated by this method).pixel
- The pixel value specified as an integer.components
- An integer array in which to store the unnormalized
color/alpha components. If the components
array is null,
a new array is allocated.offset
- An offset into the components
array.ColorModel
.components
array is not null and is not large enough to hold all the color and
alpha components (starting at offset).public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel
. The pixel value is specified by an
array of data elements of type transferType
passed in as
an object reference.
Color/alpha components are stored in the components
array
starting at offset
(even if the array is allocated by
this method).pixel
- A pixel value specified by an array of data elements of
type transferType
.components
- An integer array in which to store the unnormalized
color/alpha components. If the components
array is null,
a new array is allocated.offset
- An offset into the components
array.components
array.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.pixel
is not a primitive
array of type transferType
.components
array is
not null and is not large enough to hold all the color and alpha
components (starting at offset), or if pixel
is not large
enough to hold a pixel value for this ColorModel.public int getDataElement(int[] components, int offset)
ColorModel
,
given an array of unnormalized color/alpha components.components
- An array of unnormalized color/alpha components.offset
- An offset into the components
array.ColorModel
.public Object getDataElements(int[] components, int offset, Object obj)
ColorModel
, given an array of unnormalized color/alpha
components. This array can then be passed to the setDataElements
method of a WritableRaster
object.components
- An array of unnormalized color/alpha components.offset
- The integer offset into the components
array.obj
- The object in which to store the data element array
representation of the pixel. If obj
variable is null,
a new array is allocated. If obj
is not null, it must
be a primitive array of type transferType
. An
ArrayIndexOutOfBoundsException
is thrown if
obj
is not large enough to hold a pixel value
for this ColorModel
.ColorModel
.obj
is not null and is not a
primitive array of type transferType
.obj
is not large
enough to hold a pixel value for this ColorModel
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.WritableRaster.setDataElements(int, int, java.lang.Object)
,
SampleModel.setDataElements(int, int, java.lang.Object, java.awt.image.DataBuffer)
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
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 also returns an instance of
this ColorModel
with
the isAlphaPremultiplied
flag set appropriately.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.public boolean isCompatibleRaster(Raster raster)
raster
is compatible with this
ColorModel
; false if it is not.raster
- The Raster
object to test for compatibility.true
if raster
is compatible with this
ColorModel
, false
if it is not.public WritableRaster createCompatibleWritableRaster(int w, int h)
WritableRaster
with the specified width and height,
that has a data layout (SampleModel
) compatible with
this ColorModel
.w
- The width of the WritableRaster
you want to create.h
- The height of the WritableRaster
you want to create.WritableRaster
that is compatible with
this ColorModel
.WritableRaster
,
SampleModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
with the specified width and height,
that has a data layout compatible with this ColorModel
.w
- The width of the SampleModel
you want to create.h
- The height of the SampleModel
you want to create.SampleModel
that is compatible with this
ColorModel
.SampleModel
public boolean isCompatibleSampleModel(SampleModel sm)
SampleModel
is compatible with this ColorModel
.sm
- The SampleModel
to test for compatibility.true
if the SampleModel
is
compatible with this ColorModel
, false
if it is not.SampleModel
public WritableRaster getAlphaRaster(WritableRaster raster)
Raster
representing the alpha channel of an image,
extracted from the input Raster
.
This method assumes that Raster
objects 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 creates a new Raster
, but will share the data
array.raster
- The WritableRaster
from which to extract the
alpha channel.WritableRaster
containing the image's alpha channel.public boolean equals(Object obj)
obj
- The object to compare with this color model.true
if the color model objects are equal,
false
if they are not.
|
Java Platform 1.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |