Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.awt.color
Class ICC_ProfileRGB

    java.lang.Object
      |
      +--java.awt.color.ICC_Profile
            |
            +--java.awt.color.ICC_ProfileRGB

All Implemented Interfaces:
  Serializable

public class ICC_ProfileRGB
extends ICC_Profile

A subclass of the ICC_Profile class which represents profiles which meet the following criteria: the color space type of the profile is RGB and the profile includes the redColorantTag, greenColorantTag, blueColorantTag, redTRCTag, greenTRCTag, blueTRCTag, and mediaWhitePointTag tags. Examples of this kind of profile are three-component matrix-based input profiles and RGB display profiles. The getInstance methods in the ICC_Profile class will return an ICC_ProfileRGB object when the above conditions are met. The advantage of this class is that it provides color transform matrices and lookup tables that Java or native methods may be able to use directly to optimize color conversion in some cases.

To transform from a device profile color space to the CIEXYZ Profile Connection Space, each device color component is first linearized by a lookup through the corresponding tone reproduction curve (TRC). Then the resulting linear RGB components are converted via a 3x3 matrix (constructed from the RGB colorants) to the CIEXYZ PCS.

                    linearR = redTRC[deviceR]

                    linearG = greenTRC[deviceG]

                    linearB = blueTRC[deviceB]

      _      _       _                                             _   _         _
     [  PCSX  ]     [  redColorantX  greenColorantX  blueColorantX  ] [  linearR  ]
     [        ]     [                                               ] [           ]
     [  PCSY  ]  =  [  redColorantY  greenColorantY  blueColorantY  ] [  linearG  ]
     [        ]     [                                               ] [           ]
     [_ PCSZ _]     [_ redColorantZ  greenColorantZ  blueColorantZ _] [_ linearB _]

The inverse transform is done by converting PCS XYZ components to linear RGB components via the inverse of the above 3x3 matrix, and then converting linear RGB to device RGB via inverses of the TRCs.

See Also:
  Serialized Form

Field Summary
`static int` | `BLUECOMPONENT` To request a gamma value or TRC for the blue component.
`static int` | `GREENCOMPONENT` To request a gamma value or TRC for the green component.
`static int` | `REDCOMPONENT` To request a gamma value or TRC for the red component.

Fields inherited from class java.awt.color.ICC_Profile
`CLASS_ABSTRACT, CLASS_COLORSPACECONVERSION, CLASS_DEVICELINK, CLASS_DISPLAY, CLASS_INPUT, CLASS_NAMEDCOLOR, CLASS_OUTPUT, icAbsoluteColorimetric, icCurveCount, icCurveData, icHdrAttributes, icHdrCmmId, icHdrColorSpace, icHdrCreator, icHdrDate, icHdrDeviceClass, icHdrFlags, icHdrIlluminant, icHdrMagic, icHdrManufacturer, icHdrModel, icHdrPcs, icHdrPlatform, icHdrRenderingIntent, icHdrSize, icHdrVersion, icPerceptual, icRelativeColorimetric, icSaturation, icSigAbstractClass, icSigAToB0Tag, icSigAToB1Tag, icSigAToB2Tag, icSigBlueColorantTag, icSigBlueTRCTag, icSigBToA0Tag, icSigBToA1Tag, icSigBToA2Tag, icSigCalibrationDateTimeTag, icSigCharTargetTag, icSigChromaticityTag, icSigCmyData, icSigCmykData, icSigColorSpaceClass, icSigCopyrightTag, icSigCrdInfoTag, icSigDeviceMfgDescTag, icSigDeviceModelDescTag, icSigDeviceSettingsTag, icSigDisplayClass, icSigGamutTag, icSigGrayData, icSigGrayTRCTag, icSigGreenColorantTag, icSigGreenTRCTag, icSigHead, icSigHlsData, icSigHsvData, icSigInputClass, icSigLabData, icSigLinkClass, icSigLuminanceTag, icSigLuvData, icSigMeasurementTag, icSigMediaBlackPointTag, icSigMediaWhitePointTag, icSigNamedColor2Tag, icSigNamedColorClass, icSigOutputClass, icSigOutputResponseTag, icSigPreview0Tag, icSigPreview1Tag, icSigPreview2Tag, icSigProfileDescriptionTag, icSigProfileSequenceDescTag, icSigPs2CRD0Tag, icSigPs2CRD1Tag, icSigPs2CRD2Tag, icSigPs2CRD3Tag, icSigPs2CSATag, icSigPs2RenderingIntentTag, icSigRedColorantTag, icSigRedTRCTag, icSigRgbData, icSigScreeningDescTag, icSigScreeningTag, icSigSpace2CLR, icSigSpace3CLR, icSigSpace4CLR, icSigSpace5CLR, icSigSpace6CLR, icSigSpace7CLR, icSigSpace8CLR, icSigSpace9CLR, icSigSpaceACLR, icSigSpaceBCLR, icSigSpaceCCLR, icSigSpaceDCLR, icSigSpaceECLR, icSigSpaceFCLR, icSigTechnologyTag, icSigUcrBgTag, icSigViewingCondDescTag, icSigViewingConditionsTag, icSigXYZData, icSigYCbCrData, icSigYxyData, icTagReserved, icTagType, icXYZNumberX`

Method Summary
`float` | `getGamma(int component)` Returns a gamma value representing the tone reproduction curve (TRC) for a particular component.
`float[][]` | `getMatrix()` Returns a 3x3 float matrix constructed from the X, Y, and Z components of the redColorantTag, greenColorantTag, and blueColorantTag in the ICC profile, as described above.
`float[]` | `getMediaWhitePoint()` Returns a float array of length 3 containing the X, Y, and Z components of the mediaWhitePointTag in the ICC profile.
`short[]` | `getTRC(int component)` Returns the TRC for a particular component as an array of shorts.

Methods inherited from class java.awt.color.ICC_Profile
`finalize, getColorSpaceType, getData, getData, getInstance, getInstance, getInstance, getInstance, getMajorVersion, getMinorVersion, getNumComponents, getPCSType, getProfileClass, readResolve, setData, write, write`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### REDCOMPONENT

    public static final int REDCOMPONENT

  To request a gamma value or TRC for the red component.

### GREENCOMPONENT

    public static final int GREENCOMPONENT

  To request a gamma value or TRC for the green component.

### BLUECOMPONENT

    public static final int BLUECOMPONENT

  To request a gamma value or TRC for the blue component.

Method Detail

### getMediaWhitePoint

    public float[] getMediaWhitePoint()

  Returns a float array of length 3 containing the X, Y, and Z components of the mediaWhitePointTag in the ICC profile.

### getMatrix

    public float[][] getMatrix()

  Returns a 3x3 float matrix constructed from the X, Y, and Z components of the redColorantTag, greenColorantTag, and blueColorantTag in the ICC profile, as described above. This matrix can be used for color transforms in the forward direction of the profile, i.e. from the profile color space to the CIEXYZ PCS.

### getGamma

    public float getGamma(int component)

  Returns a gamma value representing the tone reproduction curve (TRC) for a particular component. Component must be one of REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT. If the profile represents the TRC for the corresponding component as a table rather than a single gamma value, then an exception is thrown. In this case the actual table can be obtained via getTRC(). When using a gamma value, the linear component (R, G, or B) is computed as follows:

                                                gamma
               linearComponent = deviceComponent

  Returns:
    the gamma value as a float.
  Throws:
    `ProfileDataException` - if the profile does not specify the corresponding TRC as a single gamma value.

### getTRC

    public short[] getTRC(int component)

  Returns the TRC for a particular component as an array of shorts. Component must be one of REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT. If the profile has specified the corresponding TRC as linear (gamma = 1.0) or as a simple gamma value, this method throws an exception, and the getGamma() method should be used to get the gamma value. Otherwise the short array returned here represents a lookup table where the input component value is conceptually in the range [0.0, 1.0]. Value 0.0 maps to array index 0 and value 1.0 maps to array index length-1. Interpolation may be used to generate output values for input values which do not map exactly to an index in the array. Output values also map linearly to the range [0.0, 1.0]. Value 0.0 is represented by an array value of 0x0000 and value 1.0 by 0xFFFF, i.e. the values are really unsigned short values, although they are returned in a short array.
  Returns:
    a short array representing the TRC.
  Throws:
    `ProfileDataException` - if the profile does not specify the corresponding TRC as a table.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.