public class ComponentColorModel extends ColorModel
pixel_bits, transferType
BITMASK, OPAQUE, TRANSLUCENT
Constructor and Description |
---|
ComponentColorModel(ColorSpace colorSpace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
Construct a new ComponentColorModel.
|
ComponentColorModel(ColorSpace colorSpace,
int[] bits,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType) |
Modifier and Type | Method and Description |
---|---|
ColorModel |
coerceData(WritableRaster raster,
boolean isAlphaPremultiplied) |
SampleModel |
createCompatibleSampleModel(int w,
int h)
Creates a
SampleModel whose arrangement of pixel
data is compatible to this ColorModel . |
WritableRaster |
createCompatibleWritableRaster(int w,
int h) |
boolean |
equals(Object obj)
Determine whether this Object is semantically equal
to another Object.
|
int |
getAlpha(int pixel)
Extract alpha int sample from pixel value, scaled to [0, 255].
|
int |
getAlpha(Object inData) |
WritableRaster |
getAlphaRaster(WritableRaster raster)
Subclasses must override this method if it is possible for the
color model to have an alpha channel.
|
int |
getBlue(int pixel)
Converts pixel value to sRGB and extract blue int sample
scaled to range [0, 255].
|
int |
getBlue(Object inData) |
int[] |
getComponents(int pixel,
int[] components,
int offset)
Fills an array with the unnormalized component samples from a
pixel value.
|
int[] |
getComponents(Object pixel,
int[] components,
int offset)
Fills an array with the unnormalized component samples from an
array of transferType containing a single pixel.
|
int |
getDataElement(int[] components,
int offset)
Converts the unnormalized component samples from an array to a
pixel value.
|
Object |
getDataElements(int[] components,
int offset,
Object obj) |
Object |
getDataElements(int rgb,
Object pixel)
Converts an sRGB pixel int value to an array containing a
single pixel of the color space of the color model.
|
int |
getGreen(int pixel)
Converts pixel value to sRGB and extract green int sample
scaled to range [0, 255].
|
int |
getGreen(Object inData) |
int |
getRed(int pixel)
Converts pixel value to sRGB and extract red int sample scaled
to range [0, 255].
|
int |
getRed(Object inData)
Converts pixel in the given array to sRGB and extract blue int
sample scaled to range [0-255].
|
int |
getRGB(int pixel)
Converts a pixel int value of the color space of the color
model to a sRGB pixel int value.
|
int |
getRGB(Object inData)
Converts a pixel in the given array of the color space of the
color model to an sRGB pixel int value.
|
boolean |
isCompatibleRaster(Raster raster)
Checks if the given raster has a compatible data-layout (SampleModel).
|
boolean |
isCompatibleSampleModel(SampleModel sm) |
finalize, getColorSpace, getComponentSize, getComponentSize, getDataElement, getDataElements, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied, toString
public ComponentColorModel(ColorSpace colorSpace, int[] bits, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
public ComponentColorModel(ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
colorSpace
- The colorspace for this color model.hasAlpha
- True if there is an alpha component.isAlphaPremultiplied
- True if colors are already multiplied by
alpha.transparency
- The type of alpha values.transferType
- Data type of pixel sample values.public int getRed(int pixel)
ColorModel
getRed
in class ColorModel
pixel
- pixel value that will be interpreted according to
the color model, (assumed alpha premultiplied if color model says
so.)public int getGreen(int pixel)
ColorModel
getGreen
in class ColorModel
ColorModel.getRed(int)
public int getBlue(int pixel)
ColorModel
getBlue
in class ColorModel
ColorModel.getRed(int)
public int getAlpha(int pixel)
ColorModel
getAlpha
in class ColorModel
pixel
- pixel value that will be interpreted according to
the color model.public int getRGB(int pixel)
ColorModel
getRGB
in class ColorModel
pixel
- pixel value that will be interpreted according to
the color model.public int getRed(Object inData)
ColorModel
getRed
in class ColorModel
inData
- array of transferType containing a single pixel. The
pixel should be encoded in the natural way of the color model.public int getGreen(Object inData)
getGreen
in class ColorModel
ColorModel.getRed(Object)
public int getBlue(Object inData)
getBlue
in class ColorModel
ColorModel.getRed(Object)
public int getAlpha(Object inData)
getAlpha
in class ColorModel
ColorModel.getRed(Object)
public int getRGB(Object inData)
ColorModel
This method performs the inverse function of
getDataElements(int rgb, Object pixel)
.
I.e. (rgb == cm.getRGB(cm.getDataElements(rgb,
null)))
.
getRGB
in class ColorModel
inData
- pixel data of transferType, as returned by the
getDataElements method in SampleModel.ColorModel.getDataElements(int, Object)
public Object getDataElements(int rgb, Object pixel)
ColorModel
This method performs the inverse function of
getRGB(Object inData)
.
Outline of conversion process:
getDataElements
in class ColorModel
rgb
- The color to be converted to dataElements. A pixel
in sRGB color space, encoded in default 0xAARRGGBB format,
assumed not alpha premultiplied.pixel
- to avoid needless creation of arrays, an array to
use to return the pixel can be given. If null, a suitable array
will be created.ColorModel.getRGB(Object)
public int[] getComponents(int pixel, int[] components, int offset)
ColorModel
getComponents
in class ColorModel
pixel
- pixel value encoded according to the color model.public int[] getComponents(Object pixel, int[] components, int offset)
ColorModel
getComponents
in class ColorModel
pixel
- an array of transferType containing a single pixel. The
pixel should be encoded in the natural way of the color model. If
this argument is not an array, as expected, a ClassCastException
will be thrown.components
- an array that will be filled with the color component
of the pixel. If this is null, a new array will be allocatedoffset
- index into the components array at which the result
will be storedpublic int getDataElement(int[] components, int offset)
ColorModel
getComponents(int pixel, int[] components,
int offset)
. I.e.
(pixel == cm.getDataElement(cm.getComponents(pixel, null,
0), 0))
.
This method is overriden in subclasses since this abstract class throws
UnsupportedOperationException().getDataElement
in class ColorModel
components
- Array of unnormalized component samples of single
pixel. The scale and multiplication state of the samples are according
to the color model. Each component sample is stored as a separate element
in the array.offset
- Position of the first value of the pixel in components.public Object getDataElements(int[] components, int offset, Object obj)
getDataElements
in class ColorModel
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
coerceData
in class ColorModel
public boolean isCompatibleRaster(Raster raster)
ColorModel
isCompatibleRaster
in class ColorModel
raster
- The Raster to test.public WritableRaster createCompatibleWritableRaster(int w, int h)
createCompatibleWritableRaster
in class ColorModel
public SampleModel createCompatibleSampleModel(int w, int h)
SampleModel
whose arrangement of pixel
data is compatible to this ColorModel
.createCompatibleSampleModel
in class ColorModel
w
- the number of pixels in the horizontal direction.h
- the number of pixels in the vertical direction.public boolean isCompatibleSampleModel(SampleModel sm)
isCompatibleSampleModel
in class ColorModel
public WritableRaster getAlphaRaster(WritableRaster raster)
ColorModel
getAlphaRaster
in class ColorModel
public boolean equals(Object obj)
Object
There are some fairly strict requirements on this
method which subclasses must follow:
a.equals(b)
and
b.equals(c)
, then a.equals(c)
must be true as well.a.equals(b)
and
b.equals(a)
must have the same value.a.equals(a)
must
always be true.a.equals(null)
must be false.a.equals(b)
must imply
a.hashCode() == b.hashCode()
.
The reverse is not true; two objects that are not
equal may have the same hashcode, but that has
the potential to harm hashing performance.This is typically overridden to throw a ClassCastException
if the argument is not comparable to the class performing
the comparison, but that is not a requirement. It is legal
for a.equals(b)
to be true even though
a.getClass() != b.getClass()
. Also, it
is typical to never cause a NullPointerException
.
In general, the Collections API (java.util
) use the
equals
method rather than the ==
operator to compare objects. However, IdentityHashMap
is an exception to this rule, for its own good reasons.
The default implementation returns this == o
.
equals
in class ColorModel
obj
- the Object to compare toObject.hashCode()