java.awt.image
Class ComponentColorModel
- Transparency
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)
|
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 rgb, Object pixel) - Converts an sRGB pixel int value to an array containing a
single pixel of the color space of the color model.
|
Object | getDataElements(int[] components, int offset, Object obj)
|
int | getGreen(int pixel) - Converts pixel value to sRGB and extract green int sample
scaled to range [0, 255].
|
int | getGreen(Object inData)
|
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)
|
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].
|
boolean | isCompatibleRaster(Raster raster) - Checks if the given raster has a compatible data-layout (SampleModel).
|
boolean | isCompatibleSampleModel(SampleModel sm)
|
coerceData , createCompatibleSampleModel , createCompatibleWritableRaster , equals , finalize , getAlpha , getAlpha , getAlphaRaster , getBlue , getBlue , getColorSpace , getComponentSize , getComponentSize , getComponents , getComponents , getDataElement , getDataElement , getDataElements , getDataElements , getDataElements , getGreen , getGreen , getNormalizedComponents , getNormalizedComponents , getNumColorComponents , getNumComponents , getPixelSize , getRGB , getRGB , getRGBdefault , getRed , getRed , getTransferType , getTransparency , getUnnormalizedComponents , hasAlpha , isAlphaPremultiplied , isCompatibleRaster , isCompatibleSampleModel , toString |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
Construct a new ComponentColorModel.
This constructor makes all bits of each sample significant, so for a
transferType of DataBuffer.BYTE, the bits per sample is 8, etc. If
both hasAlpha and isAlphaPremultiplied are true, color samples are
assumed to be premultiplied by the alpha component. Transparency may be
one of OPAQUE, BITMASK, or TRANSLUCENT.
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.
ComponentColorModel
public ComponentColorModel(ColorSpace colorSpace,
int[] bits,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
equals
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)
and
b.equals(c)
, then a.equals(c)
must be true as well. - It must be symmetric.
a.equals(b)
and
b.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 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 interface ColorModel
obj
- the Object to compare to
- whether this Object is semantically equal to another
getAlpha
public int getAlpha(int pixel)
Extract alpha int sample from pixel value, scaled to [0, 255].
- getAlpha in interface ColorModel
pixel
- pixel value that will be interpreted according to
the color model.
- alpha sample, scaled to range [0, 255].
getBlue
public int getBlue(int pixel)
Converts pixel value to sRGB and extract blue int sample
scaled to range [0, 255].
- getBlue in interface ColorModel
getComponents
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.
- getComponents in interface ColorModel
pixel
- pixel value encoded according to the color model.
- 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.
getComponents
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.
- getComponents in interface 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 stored
- 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.
getDataElement
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 of
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 interface 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.
- pixel value encoded according to the color model.
getDataElements
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
- getDataElements in interface 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.
- An array of transferType values representing the color,
in the color model format. The color model defines whether the
getGreen
public int getGreen(int pixel)
Converts pixel value to sRGB and extract green int sample
scaled to range [0, 255].
- getGreen in interface ColorModel
getRGB
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.
- getRGB in interface ColorModel
pixel
- pixel value that will be interpreted according to
the color model.
- a pixel in sRGB color space, encoded in default
0xAARRGGBB format.
getRGB
public int getRGB(Object inData)
- getRGB in interface ColorModel
inData
- pixel data of transferType, as returned by the
getDataElements method in SampleModel.
getRed
public int getRed(int pixel)
Converts pixel value to sRGB and extract red int sample scaled
to range [0, 255].
- getRed in interface ColorModel
pixel
- pixel value that will be interpreted according to
the color model, (assumed alpha premultiplied if color model says
so.)
- red sample scaled to range [0, 255], from default color
space sRGB, alpha non-premultiplied.
getRed
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.
- getRed in interface ColorModel
inData
- array of transferType containing a single pixel. The
pixel should be encoded in the natural way of the color model.
ComponentColorModel.java --
Copyright (C) 2000, 2002, 2004 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.