public abstract class ColorSpace extends Object implements Serializable
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).
ICC_ColorSpace, 
Serialized Form| Modifier and Type | Field and Description | 
|---|---|
| static int | CS_CIEXYZThe CIEXYZ conversion color space defined above. | 
| static int | CS_GRAYThe built-in linear gray scale color space. | 
| static int | CS_LINEAR_RGBA built-in linear RGB color space. | 
| static int | CS_PYCCThe Photo YCC conversion color space. | 
| static int | CS_sRGBThe sRGB color space defined at
 
 http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html
 . | 
| static int | TYPE_2CLRGeneric 2 component color spaces. | 
| static int | TYPE_3CLRGeneric 3 component color spaces. | 
| static int | TYPE_4CLRGeneric 4 component color spaces. | 
| static int | TYPE_5CLRGeneric 5 component color spaces. | 
| static int | TYPE_6CLRGeneric 6 component color spaces. | 
| static int | TYPE_7CLRGeneric 7 component color spaces. | 
| static int | TYPE_8CLRGeneric 8 component color spaces. | 
| static int | TYPE_9CLRGeneric 9 component color spaces. | 
| static int | TYPE_ACLRGeneric 10 component color spaces. | 
| static int | TYPE_BCLRGeneric 11 component color spaces. | 
| static int | TYPE_CCLRGeneric 12 component color spaces. | 
| static int | TYPE_CMYAny of the family of CMY color spaces. | 
| static int | TYPE_CMYKAny of the family of CMYK color spaces. | 
| static int | TYPE_DCLRGeneric 13 component color spaces. | 
| static int | TYPE_ECLRGeneric 14 component color spaces. | 
| static int | TYPE_FCLRGeneric 15 component color spaces. | 
| static int | TYPE_GRAYAny of the family of GRAY color spaces. | 
| static int | TYPE_HLSAny of the family of HLS color spaces. | 
| static int | TYPE_HSVAny of the family of HSV color spaces. | 
| static int | TYPE_LabAny of the family of Lab color spaces. | 
| static int | TYPE_LuvAny of the family of Luv color spaces. | 
| static int | TYPE_RGBAny of the family of RGB color spaces. | 
| static int | TYPE_XYZAny of the family of XYZ color spaces. | 
| static int | TYPE_YCbCrAny of the family of YCbCr color spaces. | 
| static int | TYPE_YxyAny of the family of Yxy color spaces. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | ColorSpace(int type,
          int numcomponents)Constructs a ColorSpace object given a color space type
 and the number of components. | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract float[] | fromCIEXYZ(float[] colorvalue)Transforms a color value assumed to be in the CS_CIEXYZ conversion
 color space into this ColorSpace. | 
| abstract float[] | fromRGB(float[] rgbvalue)Transforms a color value assumed to be in the default CS_sRGB
 color space into this ColorSpace. | 
| static ColorSpace | getInstance(int colorspace)Returns a ColorSpace representing one of the specific
 predefined color spaces. | 
| float | getMaxValue(int component)Returns the maximum normalized color component value for the
 specified component. | 
| float | getMinValue(int component)Returns the minimum normalized color component value for the
 specified component. | 
| String | getName(int idx)Returns the name of the component given the component index. | 
| int | getNumComponents()Returns the number of components of this ColorSpace. | 
| int | getType()Returns the color space type of this ColorSpace (for example
 TYPE_RGB, TYPE_XYZ, ...). | 
| boolean | isCS_sRGB()Returns true if the ColorSpace is CS_sRGB. | 
| abstract float[] | toCIEXYZ(float[] colorvalue)Transforms a color value assumed to be in this ColorSpace
 into the CS_CIEXYZ conversion color space. | 
| abstract float[] | toRGB(float[] colorvalue)Transforms a color value assumed to be in this ColorSpace
 into a value in the default CS_sRGB color space. | 
@Native public static final int TYPE_XYZ
@Native public static final int TYPE_Lab
@Native public static final int TYPE_Luv
@Native public static final int TYPE_YCbCr
@Native public static final int TYPE_Yxy
@Native public static final int TYPE_RGB
@Native public static final int TYPE_GRAY
@Native public static final int TYPE_HSV
@Native public static final int TYPE_HLS
@Native public static final int TYPE_CMYK
@Native public static final int TYPE_CMY
@Native public static final int TYPE_2CLR
@Native public static final int TYPE_3CLR
@Native public static final int TYPE_4CLR
@Native public static final int TYPE_5CLR
@Native public static final int TYPE_6CLR
@Native public static final int TYPE_7CLR
@Native public static final int TYPE_8CLR
@Native public static final int TYPE_9CLR
@Native public static final int TYPE_ACLR
@Native public static final int TYPE_BCLR
@Native public static final int TYPE_CCLR
@Native public static final int TYPE_DCLR
@Native public static final int TYPE_ECLR
@Native public static final int TYPE_FCLR
@Native public static final int CS_sRGB
@Native public static final int CS_LINEAR_RGB
@Native public static final int CS_CIEXYZ
@Native public static final int CS_PYCC
@Native public static final int CS_GRAY
protected ColorSpace(int type,
                     int numcomponents)
type - one of the ColorSpace type constantsnumcomponents - the number of components in the color spacepublic static ColorSpace getInstance(int colorspace)
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)ColorSpace objectpublic boolean isCS_sRGB()
true if this is a CS_sRGB color
         space, false if it is notpublic abstract float[] toRGB(float[] colorvalue)
 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.
 
colorvalue - a float array with length of at least the number
        of components in this ColorSpaceArrayIndexOutOfBoundsException - if array length is not
         at least the number of components in this ColorSpacepublic abstract float[] fromRGB(float[] rgbvalue)
 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.
 
rgbvalue - a float array with length of at least 3ArrayIndexOutOfBoundsException - if array length is not
         at least 3public abstract float[] toCIEXYZ(float[] colorvalue)
 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.
 
colorvalue - a float array with length of at least the number
        of components in this ColorSpaceArrayIndexOutOfBoundsException - if array length is not
         at least the number of components in this ColorSpace.public abstract float[] fromCIEXYZ(float[] colorvalue)
 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.
 
colorvalue - a float array with length of at least 3ArrayIndexOutOfBoundsException - if array length is not
         at least 3public int getType()
ColorSpacepublic int getNumComponents()
ColorSpace.public String getName(int idx)
idx - the component indexIllegalArgumentException - if idx is
         less than 0 or greater than numComponents - 1public float getMinValue(int component)
component - the component indexIllegalArgumentException - if component is less than 0 or
         greater than numComponents - 1public float getMaxValue(int component)
component - the component indexIllegalArgumentException - if component is less than 0 or
         greater than numComponents - 1 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2017, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.