|
|||||||||
| Home >> All >> non_com >> media >> [ jai overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
non_com.media.jai
Class FloatDoubleColorModel

java.lang.Objectjava.awt.image.ColorModel
java.awt.image.ComponentColorModel
non_com.media.jai.FloatDoubleColorModel
- All Implemented Interfaces:
- java.awt.Transparency
- public class FloatDoubleColorModel
- extends java.awt.image.ComponentColorModel
A ColorModel class that works with pixel values that represent
color and alpha information as separate samples, using float or double
elements. 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.
Sample values are taken as ranging from 0.0 to 1.0; that is, when converting to 8-bit RGB, a multiplication by 255 is performed and values outside of the range 0-255 are clamped at the closest endpoint.
For maximum efficiency, pixel data being interpreted by this class should be in the sRGB color space. This will result in only the trivial conversion (scaling by 255 and dividing by any premultiplied alpha) to be performed. Other color spaces require more general conversions.
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_FLOAT, DataBuffer.TYPE_DOUBLE
.
The translation from pixel values to color/alpha components for display or processing purposes is a one-to-one correspondence of samples to components.
Methods that use a single int pixel representation throw an IllegalArgumentException
.
A FloatDoubleColorModel can be used in conjunction with a
ComponentSampleModelJAI.
| Field Summary | |
protected java.awt.color.ColorSpace |
colorSpace
The associated ColorSpace. |
protected int |
colorSpaceType
The type or family of the associated ColorSpace. |
protected boolean |
hasAlpha
Whether this ColorModel supports alpha. |
protected boolean |
isAlphaPremultiplied
Whether alpha is premultiplied. |
protected int |
numColorComponents
The number of components of the associated ColorSpace. |
protected int |
numComponents
The number of components represented by this ColorModel. |
protected int |
transparency
Specifies what alpha values can be represented by this ColorModel
. |
| Fields inherited from class java.awt.image.ColorModel |
pixel_bits, transferType |
| Fields inherited from interface java.awt.Transparency |
BITMASK, OPAQUE, TRANSLUCENT |
| Constructor Summary | |
FloatDoubleColorModel(java.awt.color.ColorSpace colorSpace,
boolean hasAlpha,
boolean isAlphaPremultiplied,
int transparency,
int transferType)
Constructs a ComponentColorModel from the specified
parameters. |
|
| Method Summary | |
private static int[] |
bitsHelper(int transferType,
java.awt.color.ColorSpace colorSpace,
boolean hasAlpha)
|
private int |
clamp(double value)
|
private int |
clamp(float value)
|
java.awt.image.ColorModel |
coerceData(java.awt.image.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. |
java.awt.image.SampleModel |
createCompatibleSampleModel(int w,
int h)
Creates a SampleModel with the specified width and height
that has a data layout compatible with this ColorModel. |
java.awt.image.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. |
int |
getAlpha(int pixel)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int |
getAlpha(java.lang.Object inData)
Returns the alpha component for the specified pixel, scaled from 0 to 255. |
int |
getBlue(int pixel)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int |
getBlue(java.lang.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)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int[] |
getComponents(java.lang.Object pixel,
int[] components,
int offset)
Throws an IllegalArgumentException since the pixel values
cannot be placed into an int array. |
int |
getDataElement(int[] components,
int offset)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
java.lang.Object |
getDataElements(int[] components,
int offset,
java.lang.Object obj)
Returns a data element array representation of a pixel in this ColorModel
, given an array of unnormalized color/alpha components. |
java.lang.Object |
getDataElements(int rgb,
java.lang.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)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int |
getGreen(java.lang.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)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int |
getRed(java.lang.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)
Throws an IllegalArgumentException, since pixel values for
this ColorModel are not conveniently representable as a
single int. |
int |
getRGB(java.lang.Object inData)
Returns the color/alpha components for the specified pixel in the default RGB color model format. |
private int |
getSample(java.lang.Object inData,
int sample)
|
boolean |
isCompatibleRaster(java.awt.image.Raster raster)
Returns true if the supplied Raster's SampleModel
is compatible with this FloatDoubleColorModel. |
boolean |
isCompatibleSampleModel(java.awt.image.SampleModel sm)
Checks whether or not the specified SampleModel is compatible
with this ColorModel. |
java.lang.String |
toString()
Returns a String containing the values of all valid fields. |
| Methods inherited from class java.awt.image.ComponentColorModel |
equals, getAlphaRaster |
| Methods inherited from class java.awt.image.ColorModel |
finalize, getColorSpace, getComponentSize, getComponentSize, getDataElement, getDataElements, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, isAlphaPremultiplied |
| Methods inherited from class java.lang.Object |
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
colorSpace
protected java.awt.color.ColorSpace colorSpace
- The associated
ColorSpace.
colorSpaceType
protected int colorSpaceType
- The type or family of the associated
ColorSpace.
numColorComponents
protected int numColorComponents
- The number of components of the associated
ColorSpace.
numComponents
protected int numComponents
- The number of components represented by this
ColorModel. This will differ from the number of components of the associatedColorSpaceif there is an alpha channel.
transparency
protected int transparency
- Specifies what alpha values can be represented by this
ColorModel.
hasAlpha
protected boolean hasAlpha
- Whether this
ColorModelsupports alpha.
isAlphaPremultiplied
protected boolean isAlphaPremultiplied
- Whether alpha is premultiplied.
| Constructor Detail |
FloatDoubleColorModel
public FloatDoubleColorModel(java.awt.color.ColorSpace colorSpace, boolean hasAlpha, boolean isAlphaPremultiplied, int transparency, int transferType)
- Constructs a
ComponentColorModelfrom the specified parameters. Color components will be in the specifiedColorSpace.hasAlphaindicates whether alpha information is present. IfhasAlphais true, then the booleanisAlphaPremultipliedspecifies how to interpret color and alpha samples in pixel values. If the boolean istrue, color samples are assumed to have been multiplied by the alpha sample. Thetransparencyspecifies what alpha values can be represented by this color model. ThetransferTypeis the type of primitive array used to represent pixel values.
| Method Detail |
bitsHelper
private static int[] bitsHelper(int transferType,
java.awt.color.ColorSpace colorSpace,
boolean hasAlpha)
getRed
public int getRed(int pixel)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getGreen
public int getGreen(int pixel)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getBlue
public int getBlue(int pixel)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getAlpha
public int getAlpha(int pixel)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getRGB
public int getRGB(int pixel)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getRed
public int getRed(java.lang.Object inData)
- Returns the red color component for the specified pixel, scaled from 0 to
255 in the default RGB
ColorSpace, sRGB. A color conversion is done if necessary. Thepixelvalue is specified by an array of data elements of typetransferTypepassed 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).
getGreen
public int getGreen(java.lang.Object inData)
- Returns the green color component for the specified pixel, scaled from 0
to 255 in the default RGB
ColorSpace, sRGB. A color conversion is done if necessary. Thepixelvalue is specified by an array of data elements of typetransferTypepassed 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 green value will be 0).
getBlue
public int getBlue(java.lang.Object inData)
- Returns the blue color component for the specified pixel, scaled from 0 to
255 in the default RGB
ColorSpace, sRGB. A color conversion is done if necessary. Thepixelvalue is specified by an array of data elements of typetransferTypepassed 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 blue value will be 0).
getAlpha
public int getAlpha(java.lang.Object inData)
- Returns the alpha component for the specified pixel, scaled from 0 to 255.
The pixel value is specified by an array of data elements of type
transferTypepassed in as an object reference. If theColorModeldoes not have alpha, 255 is returned.
getRGB
public int getRGB(java.lang.Object inData)
- Returns the color/alpha components for the specified pixel in the default
RGB color model format. A color conversion is done if necessary. The pixel
value is specified by an array of data elements of type
transferTypepassed 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).
getDataElements
public java.lang.Object getDataElements(int rgb, java.lang.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. This array can then be passed to thesetDataElementsmethod of aWritableRasterobject. If thepixelparameter is null, a new array is allocated. If the colorSpaceType is of TYPE_GRAY then the rgb components are converted to gray using appropriate weights
getComponents
public int[] getComponents(int pixel,
int[] components,
int offset)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getComponents
public int[] getComponents(java.lang.Object pixel, int[] components, int offset)
- Throws an
IllegalArgumentExceptionsince the pixel values cannot be placed into anintarray.
getDataElement
public int getDataElement(int[] components,
int offset)
- Throws an
IllegalArgumentException, since pixel values for thisColorModelare not conveniently representable as a singleint.
getDataElements
public java.lang.Object getDataElements(int[] components, int offset, java.lang.Object obj)
- Returns a data element array representation of a pixel in this
ColorModel, given an array of unnormalized color/alpha components. This array can then be passed to thesetDataElementsmethod of aWritableRasterobject.
isCompatibleRaster
public boolean isCompatibleRaster(java.awt.image.Raster raster)
- Returns
trueif the suppliedRaster'sSampleModelis compatible with thisFloatDoubleColorModel.
isCompatibleSampleModel
public boolean isCompatibleSampleModel(java.awt.image.SampleModel sm)
- Checks whether or not the specified
SampleModelis compatible with thisColorModel. ASampleModelis compatible if it is an instance ofComponentSampleModel, has the sample number of bands as the total number of components (including alpha) in theColorSpaceused by thisColorModel, and has the same data type (float or double) as thisColorModel.
coerceData
public java.awt.image.ColorModel coerceData(java.awt.image.WritableRaster raster, boolean isAlphaPremultiplied)
- Forces the
rasterdata to match the state specified in theisAlphaPremultipliedvariable, assuming the data is currently correctly described by thisColorModel. It may multiply or divide the colorrasterdata 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 ofFloatDoubleColorModelwith theisAlphaPremultipliedflag set appropriately.
createCompatibleWritableRaster
public java.awt.image.WritableRaster createCompatibleWritableRaster(int w, int h)
- Creates a
WritableRasterwith the specified width and height, that has a data layout (SampleModel) compatible with thisColorModel. The returnedWritableRaster'sSampleModelwill be an instance ofComponentSampleModel.
createCompatibleSampleModel
public java.awt.image.SampleModel createCompatibleSampleModel(int w, int h)
- Creates a
SampleModelwith the specified width and height that has a data layout compatible with thisColorModel. The returnedSampleModelwill be an instance ofComponentSampleModel.
toString
public java.lang.String toString()
- Returns a
Stringcontaining the values of all valid fields.
getSample
private int getSample(java.lang.Object inData, int sample)
clamp
private final int clamp(float value)
clamp
private final int clamp(double value)
|
|||||||||
| Home >> All >> non_com >> media >> [ jai overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC