|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.image.ColorModel
public abstract class ColorModel
A color model operates with colors in several formats:
Field Summary | |
---|---|
protected int |
pixel_bits
|
protected int |
transferType
|
Fields inherited from interface java.awt.Transparency |
---|
BITMASK, OPAQUE, TRANSLUCENT |
Constructor Summary | |
---|---|
|
ColorModel(int bits)
Constructs the default color model. |
protected |
ColorModel(int pixel_bits,
int[] bits,
ColorSpace cspace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
Constructs a ColorModel that translates pixel values to color/alpha components. |
Method Summary | |
---|---|
ColorModel |
coerceData(WritableRaster raster,
boolean isAlphaPremultiplied)
|
SampleModel |
createCompatibleSampleModel(int w,
int h)
|
WritableRaster |
createCompatibleWritableRaster(int w,
int h)
|
boolean |
equals(Object obj)
Determine whether this Object is semantically equal to another Object. |
void |
finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. |
abstract 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. |
abstract int |
getBlue(int pixel)
Converts pixel value to sRGB and extract blue int sample scaled to range [0, 255]. |
int |
getBlue(Object inData)
|
ColorSpace |
getColorSpace()
|
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[] |
getComponentSize()
|
int |
getComponentSize(int componentIdx)
|
int |
getDataElement(float[] components,
int offset)
Converts the normalized component samples from an array to a pixel value. |
int |
getDataElement(int[] components,
int offset)
Converts the unnormalized component samples from an array to a pixel value. |
Object |
getDataElements(float[] components,
int offset,
Object obj)
Converts the normalized component samples from an array to an array of TransferType values. |
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. |
abstract int |
getGreen(int pixel)
Converts pixel value to sRGB and extract green int sample scaled to range [0, 255]. |
int |
getGreen(Object inData)
|
float[] |
getNormalizedComponents(int[] components,
int offset,
float[] normComponents,
int normOffset)
Convert unnormalized components to normalized components. |
float[] |
getNormalizedComponents(Object pixel,
float[] normComponents,
int normOffset)
Convert unnormalized components to normalized components. |
int |
getNumColorComponents()
|
int |
getNumComponents()
|
int |
getPixelSize()
Get get number of bits wide used for the bit size of pixel values |
abstract 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. |
static ColorModel |
getRGBdefault()
Returns the default color model which in Sun's case is an instance of DirectColorModel . |
int |
getTransferType()
|
int |
getTransparency()
Return the transparency type. |
int[] |
getUnnormalizedComponents(float[] normComponents,
int normOffset,
int[] components,
int offset)
Convert normalized components to unnormalized components. |
boolean |
hasAlpha()
|
boolean |
isAlphaPremultiplied()
|
boolean |
isCompatibleRaster(Raster raster)
Checks if the given raster has a compatible data-layout (SampleModel). |
boolean |
isCompatibleSampleModel(SampleModel sm)
|
String |
toString()
Convert this Object to a human-readable String. |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected int pixel_bits
protected int transferType
Constructor Detail |
---|
public ColorModel(int bits)
getRGBdefault
of this
class.
bits
- the number of bits wide used for bit size of pixel valuesprotected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
IllegalArgumentException
- If the length of the bit array is less
than the number of color or alpha components in this ColorModel, or if the
transparency is not a valid value, or if the sum of the number of bits in
bits is less than 1 or if any of the elements in bits is less than 0.Method Detail |
---|
public void finalize()
Object
java.lang.ref
package.
Virtual Machines are free to not call this method if
they can determine that it does nothing important; for
example, if your class extends Object and overrides
finalize to do simply super.finalize()
.
finalize() will be called by a Thread
that has no
locks on any Objects, and may be called concurrently.
There are no guarantees on the order in which multiple
objects are finalized. This means that finalize() is
usually unsuited for performing actions that must be
thread-safe, and that your implementation must be
use defensive programming if it is to always work.
If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.
It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.
Unlike constructors, finalize() does not get called
for an object's superclass unless the implementation
specifically calls super.finalize()
.
The default implementation does nothing.
finalize
in class Object
System.gc()
,
System.runFinalizersOnExit(boolean)
,
java.lang.ref
public static ColorModel getRGBdefault()
DirectColorModel
.
public final boolean hasAlpha()
public final boolean isAlphaPremultiplied()
public int getPixelSize()
public int getComponentSize(int componentIdx)
public int[] getComponentSize()
public int getTransparency()
Transparency
getTransparency
in interface Transparency
Transparency.OPAQUE
, Transparency.BITMASK
, or Transparency.TRANSLUCENT
.public int getNumComponents()
public int getNumColorComponents()
public abstract int getRed(int pixel)
pixel
- pixel value that will be interpreted according to
the color model, (assumed alpha premultiplied if color model says
so.)
public abstract int getGreen(int pixel)
getRed(int)
public abstract int getBlue(int pixel)
getRed(int)
public abstract int getAlpha(int pixel)
pixel
- pixel value that will be interpreted according to
the color model.
public int getRGB(int pixel)
pixel
- pixel value that will be interpreted according to
the color model.
public int getRed(Object inData)
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)
getRed(Object)
public int getBlue(Object inData)
getRed(Object)
public int getAlpha(Object inData)
getRed(Object)
public int getRGB(Object inData)
This method performs the inverse function of
getDataElements(int rgb, Object pixel)
.
I.e. (rgb == cm.getRGB(cm.getDataElements(rgb,
null)))
.
inData
- array of transferType containing a single pixel. The
pixel should be encoded in the natural way of the color model.
getDataElements(int, Object)
public Object getDataElements(int rgb, Object pixel)
This method performs the inverse function of
getRGB(Object inData)
.
Outline of conversion process:
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.
getRGB(Object)
public int[] getComponents(int pixel, int[] components, int offset)
pixel
- pixel value encoded according to the color model.
public int[] getComponents(Object pixel, int[] components, int offset)
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 stored
public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
public int getDataElement(int[] components, int offset)
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().
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 int getDataElement(float[] components, int offset)
components
- Array of normalized 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)
public Object getDataElements(float[] components, int offset, Object obj)
components
- Array of normalized 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.obj
- Array of TransferType or null.
ArrayIndexOutOfBoundsException
ClassCastException
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 Object
obj
- the Object to compare to
Object.hashCode()
public final ColorSpace getColorSpace()
public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
public boolean isCompatibleRaster(Raster raster)
raster
- The Raster to test.
public WritableRaster createCompatibleWritableRaster(int w, int h)
public SampleModel createCompatibleSampleModel(int w, int h)
public boolean isCompatibleSampleModel(SampleModel sm)
public final int getTransferType()
public WritableRaster getAlphaRaster(WritableRaster raster)
public String toString()
Object
System.out.println()
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a RuntimeException
.
This method will be called when performing string
concatenation with this object. If the result is
null
, string concatenation will instead
use "null"
.
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode())
.
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |