java.awt.image
Class DirectColorModel

java.lang.Object
  extended by java.awt.image.ColorModel
      extended by java.awt.image.PackedColorModel
          extended by java.awt.image.DirectColorModel
All Implemented Interfaces:
Transparency

public class DirectColorModel
extends PackedColorModel


Field Summary
 
Fields inherited from class java.awt.image.ColorModel
pixel_bits, transferType
 
Fields inherited from interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
 
Constructor Summary
DirectColorModel(ColorSpace cspace, int pixelBits, int rmask, int gmask, int bmask, int amask, boolean isAlphaPremultiplied, int transferType)
           
DirectColorModel(int pixelBits, int rmask, int gmask, int bmask)
          For the color model created with this constructor the pixels will have fully opaque alpha components with a value of 255.
DirectColorModel(int pixelBits, int rmask, int gmask, int bmask, int amask)
          For the color model created with this constructor the pixels will have fully opaque alpha components with a value of 255.
 
Method Summary
 ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied)
           
 WritableRaster createCompatibleWritableRaster(int w, int h)
          Creates a WriteableRaster that has a SampleModel that is compatible with this ColorModel.
 int getAlpha(int pixel)
          Get the alpha component of the given pixel.
 int getAlpha(Object inData)
           
 int getAlphaMask()
           
 int getBlue(int pixel)
          Get the blue component of the given pixel.
 int getBlue(Object inData)
           
 int getBlueMask()
           
 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 a normalized pixel int value in the sRGB color space to an array containing a single pixel of the color space of the color model.
 int getGreen(int pixel)
          Get the green component of the given pixel.
 int getGreen(Object inData)
           
 int getGreenMask()
           
 int getRed(int pixel)
          Get the red component of the given pixel.
 int getRed(Object inData)
          Converts pixel in the given array to sRGB and extract blue int sample scaled to range [0-255].
 int getRedMask()
           
 int getRGB(int pixel)
          Get the RGB color value of the given pixel using the default RGB color model.
 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).
 String toString()
          Convert this Object to a human-readable String.
 
Methods inherited from class java.awt.image.PackedColorModel
createCompatibleSampleModel, equals, getAlphaRaster, getMask, getMasks, isCompatibleSampleModel
 
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
 

Constructor Detail

DirectColorModel

public DirectColorModel(int pixelBits,
                        int rmask,
                        int gmask,
                        int bmask)
For the color model created with this constructor the pixels will have fully opaque alpha components with a value of 255. Each mask should describe a fully contiguous set of bits in the most likely order of alpha, red, green, blue from the most significant byte to the least significant byte.

Parameters:
pixelBits - the number of bits wide used for bit size of pixel values
rmask - the bits describing the red component of a pixel
gmask - the bits describing the green component of a pixel
bmask - the bits describing the blue component of a pixel

DirectColorModel

public DirectColorModel(int pixelBits,
                        int rmask,
                        int gmask,
                        int bmask,
                        int amask)
For the color model created with this constructor the pixels will have fully opaque alpha components with a value of 255. Each mask should describe a fully contiguous set of bits in the most likely order of red, green, blue from the most significant byte to the least significant byte.

Parameters:
pixelBits - the number of bits wide used for bit size of pixel values
rmask - the bits describing the red component of a pixel
gmask - the bits describing the green component of a pixel
bmask - the bits describing the blue component of a pixel
amask - the bits describing the alpha component of a pixel

DirectColorModel

public DirectColorModel(ColorSpace cspace,
                        int pixelBits,
                        int rmask,
                        int gmask,
                        int bmask,
                        int amask,
                        boolean isAlphaPremultiplied,
                        int transferType)
Method Detail

getRedMask

public final int getRedMask()

getGreenMask

public final int getGreenMask()

getBlueMask

public final int getBlueMask()

getAlphaMask

public final int getAlphaMask()

getRed

public final int getRed(int pixel)
Get the red component of the given pixel.

Specified by:
getRed in class ColorModel
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.

getGreen

public final int getGreen(int pixel)
Get the green component of the given pixel.

Specified by:
getGreen in class ColorModel
See Also:
ColorModel.getRed(int)

getBlue

public final int getBlue(int pixel)
Get the blue component of the given pixel.

Specified by:
getBlue in class ColorModel
See Also:
ColorModel.getRed(int)

getAlpha

public final int getAlpha(int pixel)
Get the alpha component of the given pixel.

Specified by:
getAlpha in class ColorModel
Parameters:
pixel - pixel value that will be interpreted according to the color model.
Returns:
alpha sample, scaled to range [0, 255].

getRGB

public final int getRGB(int pixel)
Get the RGB color value of the given pixel using the default RGB color model.

Overrides:
getRGB in class ColorModel
Parameters:
pixel - a pixel value
Returns:
a pixel in sRGB color space, encoded in default 0xAARRGGBB format.

getRed

public int getRed(Object inData)
Description copied from class: ColorModel
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.

Overrides:
getRed in class ColorModel
Parameters:
inData - array of transferType containing a single pixel. The pixel should be encoded in the natural way of the color model.

getGreen

public int getGreen(Object inData)
Overrides:
getGreen in class ColorModel
See Also:
ColorModel.getRed(Object)

getBlue

public int getBlue(Object inData)
Overrides:
getBlue in class ColorModel
See Also:
ColorModel.getRed(Object)

getAlpha

public int getAlpha(Object inData)
Overrides:
getAlpha in class ColorModel
See Also:
ColorModel.getRed(Object)

getRGB

public int getRGB(Object inData)
Description copied from class: ColorModel
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))).

Overrides:
getRGB in class ColorModel
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:
ColorModel.getDataElements(int, Object)

getDataElements

public Object getDataElements(int rgb,
                              Object pixel)
Converts a normalized pixel int value in the sRGB color space 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).

Overrides:
getDataElements in class ColorModel
Parameters:
rgb - pixel as a normalized sRGB, 0xAARRGGBB value.
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:
array of transferType containing a single pixel. The pixel should be encoded in the natural way of the color model.
See Also:
getRGB(Object)

getComponents

public final 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.

Overrides:
getComponents in class ColorModel
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.

getComponents

public final int[] getComponents(Object pixel,
                                 int[] components,
                                 int offset)
Description copied from class: ColorModel
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.

Overrides:
getComponents in class ColorModel
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, 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 allocated
offset - 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.

createCompatibleWritableRaster

public final WritableRaster createCompatibleWritableRaster(int w,
                                                           int h)
Creates a WriteableRaster that has a SampleModel that is compatible with this ColorModel.

Overrides:
createCompatibleWritableRaster in class ColorModel
Parameters:
w - the width of the writeable raster to create
h - the height of the writeable raster to create
Throws:
IllegalArgumentException - if w or h is less than or equal to zero

getDataElement

public int getDataElement(int[] components,
                          int offset)
Description copied from class: ColorModel
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().

Overrides:
getDataElement in class ColorModel
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.

getDataElements

public Object getDataElements(int[] components,
                              int offset,
                              Object obj)
Overrides:
getDataElements in class ColorModel

coerceData

public final ColorModel coerceData(WritableRaster raster,
                                   boolean isAlphaPremultiplied)
Overrides:
coerceData in class ColorModel

isCompatibleRaster

public boolean isCompatibleRaster(Raster raster)
Description copied from class: ColorModel
Checks if the given raster has a compatible data-layout (SampleModel).

Overrides:
isCompatibleRaster in class ColorModel
Parameters:
raster - The Raster to test.
Returns:
true if raster is compatible.

toString

public String toString()
Description copied from class: Object
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 into 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()).

Overrides:
toString in class ColorModel
Returns:
the String representing this Object, which may be null
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)