Spec-Zone .ru
спецификации, руководства, описания, API
|
|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
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 |
Fields inherited from interface java.awt.Transparency |
BITMASK, OPAQUE, TRANSLUCENT |
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, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, hashCode, isAlphaPremultiplied, toString |
Methods inherited from class java.lang.Object |
clone, getClass, 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 acceptable transparency
values are
OPAQUE
, BITMASK
or TRANSLUCENT
.
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.IllegalArgumentException
- If the length of the
bits
array does not match the number of components.ColorSpace
,
Transparency
Method Detail |
public int getRed(int pixel)
getRed
in class ColorModel
pixel
- The pixel from which you want to get the red color component.IllegalArgumentException
- If there is more than
one component in this ColorModel
.public int getGreen(int pixel)
getGreen
in class ColorModel
pixel
- The pixel from which you want to get the green color component.IllegalArgumentException
- If there is more than
one component in this ColorModel
.public int getBlue(int pixel)
getBlue
in class ColorModel
pixel
- The pixel from which you want to get the blue color component.IllegalArgumentException
- If there is more than
one component in this ColorModel
.public int getAlpha(int pixel)
getAlpha
in class ColorModel
pixel
- The pixel from which you want to get the alpha component.IllegalArgumentException
- If there is more than
one component in this ColorModel
.public int getRGB(int pixel)
getRGB
in class ColorModel
pixel
- The pixel from which you want to get the color/alpha components.IllegalArgumentException
- If there is more than
one component in this 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). Since
ComponentColorModel
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
.getRed
in class ColorModel
inData
- The pixel from which you want to get the red color component,
specified by an array of data elements of type transferType
.ClassCastException
- If inData
is not a primitive array
of type transferType
.ArrayIndexOutOfBoundsException
- if inData
is not
large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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).
Since ComponentColorModel
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
.getGreen
in class ColorModel
inData
- The pixel from which you want to get the green color component,
specified by an array of data elements of type transferType
.ClassCastException
- If inData
is not a primitive array
of type transferType
.ArrayIndexOutOfBoundsException
- if inData
is not
large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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).
Since ComponentColorModel
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
.getBlue
in class ColorModel
inData
- The pixel from which you want to get the blue color component,
specified by an array of data elements of type transferType
.ClassCastException
- If inData
is not a primitive array
of type transferType
.ArrayIndexOutOfBoundsException
- if inData
is not
large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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. Since ComponentColorModel
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
.getAlpha
in class ColorModel
inData
- The pixel from which you want to get the alpha component,
specified by an array of data elements of type transferType
.ClassCastException
- If inData
is not a primitive array
of type transferType
.ArrayIndexOutOfBoundsException
- if inData
is not
large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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).
Since ComponentColorModel
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
.getRGB
in class ColorModel
inData
- The pixel from which you want to get the color/alpha components,
specified by an array of data elements of type transferType
.ClassCastException
- If inData
is not a primitive array
of type transferType
.ArrayIndexOutOfBoundsException
- if inData
is not
large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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. Since
ComponentColorModel
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
.getDataElements
in class ColorModel
rgb
- pixel
- The integer representation of the pixel.ClassCastException
- If pixel
is not null and
is not a primitive array of type transferType
.ArrayIndexOutOfBoundsException
- If pixel
is
not large enough to hold a pixel value for this
ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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).getComponents
in class ColorModel
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.IllegalArgumentException
- If there is more than one
component in this ColorModel
.ArrayIndexOutOfBoundsException
- If the 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). Since ComponentColorModel
can be
subclassed, subclasses inherit the
implementation of this method and if they don't override it then
this method might throw an exception if they use an unsupported
transferType
.getComponents
in class ColorModel
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.UnsupportedOperationException
- in some cases iff the
transfer type of this ComponentColorModel
is not one of the supported transfer types:
DataBuffer.TYPE_BYTE
, DataBuffer.TYPE_USHORT
,
or DataBuffer.TYPE_INT
.ClassCastException
- If pixel
is not a primitive
array of type transferType
.IllegalArgumentException
- If the 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.getDataElement
in class ColorModel
components
- An array of unnormalized color/alpha components.offset
- An offset into the components
array.IllegalArgumentException
- If there is more than one component
in this 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.getDataElements
in class ColorModel
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
. Since
ComponentColorModel
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
.ColorModel
.IllegalArgumentException
- If the components array
is not large enough to hold all the color and alpha components
(starting at offset).ClassCastException
- If obj
is not null and is not a
primitive array of type transferType
.ArrayIndexOutOfBoundsException
- If obj
is not large
enough to hold a pixel value for this ColorModel
.UnsupportedOperationException
- If the transfer type of
this 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.
Since ColorModel
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
.coerceData
in class ColorModel
NullPointerException
- if raster
is
null
and data coercion is required.UnsupportedOperationException
- if the transfer type of
this 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.isCompatibleRaster
in class ColorModel
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
.createCompatibleWritableRaster
in class 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
.createCompatibleSampleModel
in class 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
.isCompatibleSampleModel
in class 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.getAlphaRaster
in class ColorModel
raster
- The WritableRaster
from which to extract the
alpha channel.WritableRaster
containing the image's alpha channel.public boolean equals(Object obj)
equals
in class ColorModel
obj
- The object to compare with this color model.true
if the color model objects are equal,
false
if they are not.
|
JavaTM 2 Platform Std. Ed. v1.3.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.