java::awt::color::ColorSpace Class Reference

Inheritance diagram for java::awt::color::ColorSpace:

Inheritance graph
java::lang::Object
[legend]
Collaboration diagram for java::awt::color::ColorSpace:

Collaboration graph
java::lang::Object
[legend]

List of all members.


Detailed Description

This abstract class is used to serve as a color space tag to identify the specific color space of a Color object or, via a ColorModel object, of an Image, a BufferedImage, or a GraphicsDevice.

It contains methods that transform colors in a specific color space to/from sRGB and to/from a well-defined CIEXYZ color space.

For purposes of the methods in this class, colors are represented as arrays of color components represented as floats in a normalized range defined by each ColorSpace. For many ColorSpaces (e.g. sRGB), this range is 0.0 to 1.0. However, some ColorSpaces have components whose values have a different range. Methods are provided to inquire per component minimum and maximum normalized values.

Several variables are defined for purposes of referring to color space types (e.g. TYPE_RGB, TYPE_XYZ, etc.) and to refer to specific color spaces (e.g. CS_sRGB and CS_CIEXYZ). sRGB is a proposed standard RGB color space. For more information, see http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html .

The purpose of the methods to transform to/from the well-defined CIEXYZ color space is to support conversions between any two color spaces at a reasonably high degree of accuracy. It is expected that particular implementations of subclasses of ColorSpace (e.g. ICC_ColorSpace) will support high performance conversion based on underlying platform color management systems.

The CS_CIEXYZ space used by the toCIEXYZ/fromCIEXYZ methods can be described as follows:

       CIEXYZ
       viewing illuminance: 200 lux
       viewing white point: CIE D50
       media white point: "that of a perfectly reflecting diffuser" -- D50 
       media black point: 0 lux or 0 Reflectance
       flare: 1 percent
       surround: 20percent of the media white point
       media description: reflection print (i.e., RLAB, Hunt viewing media)
       note: For developers creating an ICC profile for this conversion
             space, the following is applicable.  Use a simple Von Kries
             white point adaptation folded into the 3X3 matrix parameters
             and fold the flare and surround effects into the three
             one-dimensional lookup tables (assuming one uses the minimal
             model for monitors).

 

See also:
ICC_ColorSpace
Version:
10 Feb 1997

Public Types

enum  COLOR_SPACE_TYPE {
  TYPE_XYZ, TYPE_Lab, TYPE_Luv, TYPE_YCbCr,
  TYPE_Yxy, TYPE_RGB, TYPE_GRAY, TYPE_HSV,
  TYPE_HLS, TYPE_CMYK, TYPE_CMY, TYPE_2CLR,
  TYPE_3CLR, TYPE_4CLR, TYPE_5CLR, TYPE_6CLR,
  TYPE_7CLR, TYPE_8CLR, TYPE_9CLR, TYPE_ACLR,
  TYPE_BCLR, TYPE_CCLR, TYPE_DCLR, TYPE_ECLR,
  TYPE_FCLR, CS_sRGB = 1000, CS_CIEXYZ, CS_PYCC,
  CS_GRAY, CS_LINEAR_RGB
}

Public Member Functions

virtual jboolean isCS_sRGB () const
 Returns true if the ColorSpace is CS_sRGB.
virtual jboolean isCS_CIEXYZ () const
virtual jint getType () const
 Returns the color space type of this ColorSpace (for example TYPE_RGB, TYPE_XYZ, .
virtual jint getNumComponents () const
 Returns the number of components of this ColorSpace.
virtual String getName (jint idx) const
 Returns the name of the component given the component index.
virtual jfloat getMinValue (jint component) const
 Returns the minimum normalized color component value for the specified component.
virtual jfloat getMaxValue (jint component) const
 Returns the maximum normalized color component value for the specified component.
virtual Array< jfloattoRGB (const Array< jfloat > colorvalue) const =0
 Transforms a color value assumed to be in this ColorSpace into a value in the default CS_sRGB color space.
virtual Array< jfloatfromRGB (const Array< jfloat > rgbvalue) const =0
 Transforms a color value assumed to be in the default CS_sRGB color space into this ColorSpace.
virtual Array< jfloattoCIEXYZ (const Array< jfloat > colorvalue) const =0
 Transforms a color value assumed to be in this ColorSpace into the CS_CIEXYZ conversion color space.
virtual Array< jfloatfromCIEXYZ (const Array< jfloat > colorvalue) const =0
 Transforms a color value assumed to be in the CS_CIEXYZ conversion color space into this ColorSpace.

Static Public Member Functions

static Ref< ColorSpacegetInstance (jint colorspace)
 Returns a ColorSpace representing one of the specific predefined color spaces.

Protected Member Functions

 ColorSpace (jint type, jint numComponents)
 Constructs a ColorSpace object given a color space type and the number of components.

Member Enumeration Documentation

enum java::awt::color::ColorSpace::COLOR_SPACE_TYPE

Enumerator:
TYPE_XYZ  Any of the family of XYZ color spaces.
TYPE_Lab  Any of the family of Lab color spaces.
TYPE_Luv  Any of the family of Luv color spaces.
TYPE_YCbCr  Any of the family of YCbCr color spaces.
TYPE_Yxy  Any of the family of Yxy color spaces.
TYPE_RGB  Any of the family of RGB color spaces.
TYPE_GRAY  Any of the family of GRAY color spaces.
TYPE_HSV  Any of the family of HSV color spaces.
TYPE_HLS  Any of the family of HLS color spaces.
TYPE_CMYK  Any of the family of CMYK color spaces.
TYPE_CMY  Any of the family of CMY color spaces.
TYPE_2CLR  Generic 2 component color spaces.
TYPE_3CLR  Generic 3 component color spaces.
TYPE_4CLR  Generic 4 component color spaces.
TYPE_5CLR  Generic 5 component color spaces.
TYPE_6CLR  Generic 6 component color spaces.
TYPE_7CLR  Generic 7 component color spaces.
TYPE_8CLR  Generic 8 component color spaces.
TYPE_9CLR  Generic 9 component color spaces.
TYPE_ACLR  Generic 10 component color spaces.
TYPE_BCLR  Generic 11 component color spaces.
TYPE_CCLR  Generic 12 component color spaces.
TYPE_DCLR  Generic 13 component color spaces.
TYPE_ECLR  Generic 14 component color spaces.
TYPE_FCLR  Generic 15 component color spaces.
CS_sRGB  The sRGB color space defined at http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html .
CS_CIEXYZ  The CIEXYZ conversion color space defined above.
CS_PYCC  The Photo YCC conversion color space.
CS_GRAY  The built-in linear gray scale color space.
CS_LINEAR_RGB  A built-in linear RGB color space.

This space is based on the same RGB primaries as CS_sRGB, but has a linear tone reproduction curve.


Constructor & Destructor Documentation

java::awt::color::ColorSpace::ColorSpace ( jint  type,
jint  numComponents 
) [protected]

Constructs a ColorSpace object given a color space type and the number of components.

Parameters:
type One of the ColorSpace type constants.
numcomponents The number of components in the color space.


Member Function Documentation

static Ref<ColorSpace> java::awt::color::ColorSpace::getInstance ( jint  colorspace  )  [static]

Returns a ColorSpace representing one of the specific predefined color spaces.

Parameters:
colorspace a specific color space identified by one of the predefined class constants (e.g. CS_sRGB, CS_LINEAR_RGB, CS_CIEXYZ, CS_GRAY, or CS_PYCC)
Returns:
The requested ColorSpace object.

virtual jboolean java::awt::color::ColorSpace::isCS_sRGB (  )  const [virtual]

Returns true if the ColorSpace is CS_sRGB.

Returns:
true if this is a CS_sRGB color space, false if it is not.

virtual jboolean java::awt::color::ColorSpace::isCS_CIEXYZ (  )  const [virtual]

virtual jint java::awt::color::ColorSpace::getType (  )  const [virtual]

Returns the color space type of this ColorSpace (for example TYPE_RGB, TYPE_XYZ, .

..). The type defines the number of components of the color space and the interpretation, e.g. TYPE_RGB identifies a color space with three components - red, green, and blue. It does not define the particular color characteristics of the space, e.g. the chromaticities of the primaries.

Returns:
The type constant that represents the type of this ColorSpace.

virtual jint java::awt::color::ColorSpace::getNumComponents (  )  const [virtual]

Returns the number of components of this ColorSpace.

Returns:
The number of components in this ColorSpace.

virtual String java::awt::color::ColorSpace::getName ( jint  idx  )  const [virtual]

Returns the name of the component given the component index.

Parameters:
idx The component index.
Returns:
The name of the component at the specified index.

virtual jfloat java::awt::color::ColorSpace::getMinValue ( jint  component  )  const [virtual]

Returns the minimum normalized color component value for the specified component.

The default implementation in this abstract class returns 0.0 for all components. Subclasses should override this method if necessary.

Parameters:
component The component index.
Returns:
The minimum normalized component value.
Exceptions:
IllegalArgumentException if component is less than 0 or greater than numComponents - 1.
Since:
1.4

virtual jfloat java::awt::color::ColorSpace::getMaxValue ( jint  component  )  const [virtual]

Returns the maximum normalized color component value for the specified component.

The default implementation in this abstract class returns 1.0 for all components. Subclasses should override this method if necessary.

Parameters:
component The component index.
Returns:
The maximum normalized component value.
Exceptions:
IllegalArgumentException if component is less than 0 or greater than numComponents - 1.
Since:
1.4

virtual Array<jfloat> java::awt::color::ColorSpace::toRGB ( const Array< jfloat colorvalue  )  const [pure virtual]

Transforms a color value assumed to be in this ColorSpace into a value in the default CS_sRGB color space.

This method transforms color values using algorithms designed to produce the best perceptual match between input and output colors. In order to do colorimetric conversion of color values, you should use the toCIEXYZ method of this color space to first convert from the input color space to the CS_CIEXYZ color space, and then use the fromCIEXYZ method of the CS_sRGB color space to convert from CS_CIEXYZ to the output color space. See toCIEXYZ and fromCIEXYZ for further information.

Parameters:
colorvalue a float array with length of at least the number of components in this ColorSpace
Returns:
a float array of length 3
Exceptions:
ArrayIndexOutOfBoundsException if array length is not at least the number of components in this ColorSpace.

virtual Array<jfloat> java::awt::color::ColorSpace::fromRGB ( const Array< jfloat rgbvalue  )  const [pure virtual]

Transforms a color value assumed to be in the default CS_sRGB color space into this ColorSpace.

This method transforms color values using algorithms designed to produce the best perceptual match between input and output colors. In order to do colorimetric conversion of color values, you should use the toCIEXYZ method of the CS_sRGB color space to first convert from the input color space to the CS_CIEXYZ color space, and then use the fromCIEXYZ method of this color space to convert from CS_CIEXYZ to the output color space. See toCIEXYZ and fromCIEXYZ for further information.

Parameters:
rgbvalue a float array with length of at least 3
Returns:
a float array with length equal to the number of components in this ColorSpace
Exceptions:
ArrayIndexOutOfBoundsException if array length is not at least 3.

virtual Array<jfloat> java::awt::color::ColorSpace::toCIEXYZ ( const Array< jfloat colorvalue  )  const [pure virtual]

Transforms a color value assumed to be in this ColorSpace into the CS_CIEXYZ conversion color space.

This method transforms color values using relative colorimetry, as defined by the International Color Consortium standard. This means that the XYZ values returned by this method are represented relative to the D50 white point of the CS_CIEXYZ color space. This representation is useful in a two-step color conversion process in which colors are transformed from an input color space to CS_CIEXYZ and then to an output color space. This representation is not the same as the XYZ values that would be measured from the given color value by a colorimeter. A further transformation is necessary to compute the XYZ values that would be measured using current CIE recommended practices. See the toCIEXYZ method of ICC_ColorSpace for further information.

Parameters:
colorvalue a float array with length of at least the number of components in this ColorSpace
Returns:
a float array of length 3
Exceptions:
ArrayIndexOutOfBoundsException if array length is not at least the number of components in this ColorSpace.

virtual Array<jfloat> java::awt::color::ColorSpace::fromCIEXYZ ( const Array< jfloat colorvalue  )  const [pure virtual]

Transforms a color value assumed to be in the CS_CIEXYZ conversion color space into this ColorSpace.

This method transforms color values using relative colorimetry, as defined by the International Color Consortium standard. This means that the XYZ argument values taken by this method are represented relative to the D50 white point of the CS_CIEXYZ color space. This representation is useful in a two-step color conversion process in which colors are transformed from an input color space to CS_CIEXYZ and then to an output color space. The color values returned by this method are not those that would produce the XYZ value passed to the method when measured by a colorimeter. If you have XYZ values corresponding to measurements made using current CIE recommended practices, they must be converted to D50 relative values before being passed to this method. See the fromCIEXYZ method of ICC_ColorSpace for further information.

Parameters:
colorvalue a float array with length of at least 3
Returns:
a float array with length equal to the number of components in this ColorSpace
Exceptions:
ArrayIndexOutOfBoundsException if array length is not at least 3.


The documentation for this class was generated from the following file:
Generated on Fri May 16 11:56:13 2008 for CrossPlatformJavaLikeC++API by  doxygen 1.5.3