Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
java.awt.image.ColorModel
Field Summary | |
protected int | |
protected int |
Fields inherited from interface java.awt.Transparency | |
BITMASK , OPAQUE , TRANSLUCENT |
Constructor Summary | |
| |
|
Method Summary | |
ColorModel |
|
SampleModel |
|
WritableRaster |
|
boolean | |
void |
|
abstract int |
|
int | |
WritableRaster |
|
abstract int |
|
int | |
ColorSpace | |
int[] | |
int |
|
int[] |
|
int[] |
|
int |
|
int |
|
Object |
|
Object |
|
Object |
|
abstract int |
|
int | |
float[] |
|
float[] |
|
int | |
int | |
int |
|
int |
|
int | |
static ColorModel |
|
abstract int |
|
int | |
int | |
int |
|
int[] |
|
boolean |
|
boolean | |
boolean |
|
boolean | |
String |
|
Methods inherited from class java.lang.Object | |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
public ColorModel(int bits)
Constructs the default color model. The default color model can be obtained by callinggetRGBdefault
of this class.
- Parameters:
bits
- the number of bits wide used for bit size of pixel values
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.
- Throws:
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.
public boolean equals(Object obj)
Determine whether this Object is semantically equal to another Object.There are some fairly strict requirements on this method which subclasses must follow:
- It must be transitive. If
a.equals(b)
andb.equals(c)
, thena.equals(c)
must be true as well.- It must be symmetric.
a.equals(b)
andb.equals(a)
must have the same value.- It must be reflexive.
a.equals(a)
must always be true.- It must be consistent. Whichever value a.equals(b) returns on the first invocation must be the value returned on all later invocations.
a.equals(null)
must be false.- It must be consistent with hashCode(). That is,
a.equals(b)
must implya.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 fora.equals(b)
to be true even thougha.getClass() != b.getClass()
. Also, it is typical to never cause aNullPointerException
.In general, the Collections API (
java.util
) use theequals
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
.
- Parameters:
obj
- the Object to compare to
- Returns:
- whether this Object is semantically equal to another
- See Also:
Object.hashCode()
public 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. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from thejava.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.
- See Also:
System.gc()
,System.runFinalizersOnExit(boolean)
,java.lang.ref
public abstract int getAlpha(int pixel)
Extract alpha int sample from pixel value, scaled to [0, 255].
- Parameters:
pixel
- pixel value that will be interpreted according to the color model.
- Returns:
- alpha sample, scaled to range [0, 255].
public WritableRaster getAlphaRaster(WritableRaster raster)
Subclasses must override this method if it is possible for the color model to have an alpha channel.
- Returns:
- null, as per JDK 1.3 doc. Subclasses will only return null if no alpha raster exists.
public abstract int getBlue(int pixel)
Converts pixel value to sRGB and extract blue int sample scaled to range [0, 255].
- See Also:
getRed(int)
public int[] getComponents(int pixel, int[] components, int offset)
Fills an array with the unnormalized component samples from a pixel value. I.e. decompose the pixel, but not perform any color conversion. This method is typically overriden in subclasses to provide a more efficient implementation.
- Parameters:
pixel
- pixel value encoded according to the color model.
- Returns:
- arrays 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.
public 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. I.e. decompose the pixel, but not perform any color conversion. This method is typically overriden in subclasses to provide a more efficient implementation.
- Parameters:
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, aClassCastException
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
- Returns:
- arrays 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.
public int getDataElement(float[] components, int offset)
Converts the normalized component samples from an array to a pixel value. I.e. composes the pixel from component samples, but does not perform any color conversion or scaling of the samples. This method is typically overriden in subclasses to provide a more efficient implementation. The method provided by this abstract class converts the components to unnormalized form and returns getDataElement(int[], int).
- Parameters:
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.
- Returns:
- pixel value encoded according to the color model.
- Since:
- 1.4
public int getDataElement(int[] components, int offset)
Converts the unnormalized component samples from an array to a pixel value. I.e. composes the pixel from component samples, but does not perform any color conversion or scaling of the samples. This method performs the inverse function ofgetComponents(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().
- Parameters:
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.
- Returns:
- pixel value encoded according to the color model.
public Object getDataElements(float[] components, int offset, Object obj)
Converts the normalized component samples from an array to an array of TransferType values. I.e. composes the pixel from component samples, but does not perform any color conversion or scaling of the samples. If obj is null, a new array of TransferType is allocated and returned. Otherwise the results are stored in obj and obj is returned. If obj is not long enough, ArrayIndexOutOfBounds is thrown. If obj is not an array of primitives, ClassCastException is thrown. This method is typically overriden in subclasses to provide a more efficient implementation. The method provided by this abstract class converts the components to unnormalized form and returns getDataElement(int[], int, Object).
- Parameters:
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.
- Returns:
- pixel value encoded according to the color model.
- Throws:
ArrayIndexOutOfBoundsException
-ClassCastException
-
- Since:
- 1.4
public 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.This method performs the inverse function of
getRGB(Object inData)
. Outline of conversion process:
- Convert rgb to normalized [0.0, 1.0] sRGB values.
- Convert to color space components using fromRGB in ColorSpace.
- If color model has alpha and should be premultiplied, multiply color space components with alpha value
- Scale the components to the correct number of bits.
- Arrange the components in the output array
- Parameters:
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.
- Returns:
- An array of transferType values representing the color, in the color model format. The color model defines whether the
- See Also:
getRGB(Object)
public abstract int getGreen(int pixel)
Converts pixel value to sRGB and extract green int sample scaled to range [0, 255].
- See Also:
getRed(int)
public float[] getNormalizedComponents(int[] components, int offset, float[] normComponents, int normOffset)
Convert unnormalized components to normalized components.
public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset)
Convert unnormalized components to normalized components.
- Since:
- 1.4
public int getPixelSize()
Get get number of bits wide used for the bit size of pixel values
public int getRGB(int pixel)
Converts a pixel int value of the color space of the color model to a sRGB pixel int value. This method is typically overriden in subclasses to provide a more efficient implementation.
- Parameters:
pixel
- pixel value that will be interpreted according to the color model.
- Returns:
- a pixel in sRGB color space, encoded in default 0xAARRGGBB format.
public 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.This method performs the inverse function of
getDataElements(int rgb, Object pixel)
. I.e.(rgb == cm.getRGB(cm.getDataElements(rgb, null)))
.
- Parameters:
inData
- array of transferType containing a single pixel. The pixel should be encoded in the natural way of the color model.
- Returns:
- a pixel in sRGB color space, encoded in default 0xAARRGGBB format.
- See Also:
getDataElements(int,Object)
public static ColorModel getRGBdefault()
Returns the default color model which in Sun's case is an instance ofDirectColorModel
.
public abstract int getRed(int pixel)
Converts pixel value to sRGB and extract red int sample scaled to range [0, 255].
- Parameters:
pixel
- pixel value that will be interpreted according to the color model, (assumed alpha premultiplied if color model says so.)
- Returns:
- red sample scaled to range [0, 255], from default color space sRGB, alpha non-premultiplied.
public int getRed(Object inData)
Converts pixel in the given array to sRGB and extract blue int sample scaled to range [0-255]. This method is typically overriden in subclasses to provide a more efficient implementation.
- Parameters:
inData
- array of transferType containing a single pixel. The pixel should be encoded in the natural way of the color model.
public int getTransparency()
Return the transparency type.
- Specified by:
- getTransparency in interface Transparency
- Returns:
- One of
Transparency.OPAQUE
,Transparency.BITMASK
, orTransparency.TRANSLUCENT
.
public int[] getUnnormalizedComponents(float[] normComponents, int normOffset, int[] components, int offset)
Convert normalized components to unnormalized components.
public boolean isCompatibleRaster(Raster raster)
Checks if the given raster has a compatible data-layout (SampleModel).
- Parameters:
raster
- The Raster to test.
- Returns:
- true if raster is compatible.
public String toString()
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it intoSystem.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())
.
- Returns:
- the String representing this Object, which may be null
- See Also:
getClass()
,Object.hashCode()
,Class.getName()
,Integer.toHexString(int)