APIdia Launch Partner
Top Description Fields Constructors Methods
java.awt.color

public final Class ICC_ProfileRGB

extends ICC_Profile
Class Inheritance
Imports
java.io.Serial, sun.java2d.cmm.BuiltinProfileInfo, .Profile

The ICC_ProfileRGB class is a subclass of the ICC_Profile class that represents profiles which meet the following criteria: the profile's color space type is RGB, and the profile includes the redColorantTag, greenColorantTag, blueColorantTag, redTRCTag, greenTRCTag, blueTRCTag, mediaWhitePointTag tags. The getInstance methods in the ICC_Profile class will return an ICC_ProfileRGB object when the above conditions are met. Three-component, matrix-based input profiles and RGB display profiles are examples of this type of profile.

The advantage of this class is that it provides color transform matrices and lookup tables that Java or native methods can 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). The resulting linear RGB components are converted to the CIEXYZ PCS using a 3x3 matrix constructed from the RGB colorants.


                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 performed by converting PCS XYZ components to linear RGB components through the inverse of the above 3x3 matrix, and then converting linear RGB to device RGB through inverses of the TRCs.

Field Summary

Modifier and TypeField and Description
public static final int
BLUECOMPONENT

Used to get a gamma value or TRC for the blue component.

public static final int
GREENCOMPONENT

Used to get a gamma value or TRC for the green component.

public static final int
REDCOMPONENT

Used to get a gamma value or TRC for the red component.

private static final long
serialVersionUID

Hides java.awt.color.ICC_Profile.serialVersionUID.

Use serialVersionUID from JDK 1.2 for interoperability.
Inherited from java.awt.color.ICC_Profile:
CLASS_ABSTRACTCLASS_COLORSPACECONVERSIONCLASS_DEVICELINKCLASS_DISPLAYCLASS_INPUTCLASS_NAMEDCOLORCLASS_OUTPUTicAbsoluteColorimetricicCurveCounticCurveDataicHdrAttributesicHdrCmmIdicHdrColorSpaceicHdrCreatoricHdrDateicHdrDeviceClassicHdrFlagsicHdrIlluminanticHdrMagicicHdrManufacturericHdrModelicHdrPcsicHdrPlatformicHdrProfileIDicHdrRenderingIntenticHdrSizeicHdrVersionicICCAbsoluteColorimetricicMediaRelativeColorimetricicPerceptualicRelativeColorimetricicSaturationicSigAbstractClassicSigAToB0TagicSigAToB1TagicSigAToB2TagicSigBlueColorantTagicSigBlueMatrixColumnTagicSigBlueTRCTagicSigBToA0TagicSigBToA1TagicSigBToA2TagicSigCalibrationDateTimeTagicSigCharTargetTagicSigChromaticAdaptationTagicSigChromaticityTagicSigCmyDataicSigCmykDataicSigColorantOrderTagicSigColorantTableTagicSigColorSpaceClassicSigCopyrightTagicSigCrdInfoTagicSigDeviceMfgDescTagicSigDeviceModelDescTagicSigDeviceSettingsTagicSigDisplayClassicSigGamutTagicSigGrayDataicSigGrayTRCTagicSigGreenColorantTagicSigGreenMatrixColumnTagicSigGreenTRCTagicSigHeadicSigHlsDataicSigHsvDataicSigInputClassicSigLabDataicSigLinkClassicSigLuminanceTagicSigLuvDataicSigMeasurementTagicSigMediaBlackPointTagicSigMediaWhitePointTagicSigNamedColor2TagicSigNamedColorClassicSigOutputClassicSigOutputResponseTagicSigPreview0TagicSigPreview1TagicSigPreview2TagicSigProfileDescriptionTagicSigProfileSequenceDescTagicSigPs2CRD0TagicSigPs2CRD1TagicSigPs2CRD2TagicSigPs2CRD3TagicSigPs2CSATagicSigPs2RenderingIntentTagicSigRedColorantTagicSigRedMatrixColumnTagicSigRedTRCTagicSigRgbDataicSigScreeningDescTagicSigScreeningTagicSigSpace2CLRicSigSpace3CLRicSigSpace4CLRicSigSpace5CLRicSigSpace6CLRicSigSpace7CLRicSigSpace8CLRicSigSpace9CLRicSigSpaceACLRicSigSpaceBCLRicSigSpaceCCLRicSigSpaceDCLRicSigSpaceECLRicSigSpaceFCLRicSigTechnologyTagicSigUcrBgTagicSigViewingCondDescTagicSigViewingConditionsTagicSigXYZDataicSigYCbCrDataicSigYxyDataicTagReservedicTagTypeicXYZNumberX

Constructor Summary

AccessConstructor and Description
pack-priv
ICC_ProfileRGB(Profile
the CMM profile used to create this ICC profile
p
)

Constructs a new ICC_ProfileRGB from the specified CMM profile.

pack-priv
ICC_ProfileRGB(BuiltinProfileInfo bpi)

Constructs a new ICC_ProfileRGB from a BuiltinProfileInfo object.

Method Summary

Modifier and TypeMethod and Description
public float

Returns:

the gamma value as a float
getGamma
(int
the ICC_ProfileRGB constant that represents the component whose TRC you want to retrieve
component
)

Overrides java.awt.color.ICC_Profile.getGamma.

Returns a gamma value representing the tone reproduction curve (TRC) for a particular component.

public float[][]

Returns:

a 3x3 float array that contains the x, y, and z components of the profile's redColorantTag, greenColorantTag, and blueColorantTag
getMatrix
()

Returns a 3x3 float matrix constructed from the X, Y, and Z components of the profile's redColorantTag, greenColorantTag, and blueColorantTag.

public float[]

Returns:

a 3-element float array containing the x, y, and z components of the profile's mediaWhitePointTag
getMediaWhitePoint
()

Overrides java.awt.color.ICC_Profile.getMediaWhitePoint.

Returns an array that contains the components of the profile's mediaWhitePointTag.

public short[]

Returns:

a short array representing the TRC
getTRC
(int
the ICC_ProfileRGB constant that represents the component whose TRC you want to retrieve: REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT
component
)

Overrides java.awt.color.ICC_Profile.getTRC.

Returns the TRC for a particular component as an array.

private static int

Returns:

the tag signature
toTag
(int
the ICC_ProfileRGB constant
component
)

Converts the ICC_ProfileRGB constant to the appropriate tag.

Inherited from java.awt.color.ICC_Profile:
getColorSpaceTypegetDatagetDatagetDatagetInstancegetInstancegetInstancegetInstancegetMajorVersiongetMinorVersiongetNumComponentsgetPCSTypegetProfileClassgetProfileDataFromStreamgetXYZTagreadResolvesetDatawritewrite

Field Detail

BLUECOMPONENTback to summary
public static final int BLUECOMPONENT

Used to get a gamma value or TRC for the blue component.

GREENCOMPONENTback to summary
public static final int GREENCOMPONENT

Used to get a gamma value or TRC for the green component.

REDCOMPONENTback to summary
public static final int REDCOMPONENT

Used to get a gamma value or TRC for the red component.

serialVersionUIDback to summary
private static final long serialVersionUID

Hides java.awt.color.ICC_Profile.serialVersionUID.

Use serialVersionUID from JDK 1.2 for interoperability.

Annotations
@Serial

Constructor Detail

ICC_ProfileRGBback to summary
pack-priv ICC_ProfileRGB(Profile p)

Constructs a new ICC_ProfileRGB from the specified CMM profile.

Parameters
p:Profile

the CMM profile used to create this ICC profile

Exceptions
CMMException:
if the required tags are missing
ICC_ProfileRGBback to summary
pack-priv ICC_ProfileRGB(BuiltinProfileInfo bpi)

Constructs a new ICC_ProfileRGB from a BuiltinProfileInfo object.

Method Detail

getGammaback to summary
public float getGamma(int component)

Overrides java.awt.color.ICC_Profile.getGamma.

Returns a gamma value representing the tone reproduction curve (TRC) for a particular component. The component parameter 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, an exception is thrown. In this case the actual table can be obtained through the getTRC(int) method. When using a gamma value, the linear component (R, G, or B) is computed as follows:


                                          gamma
         linearComponent = deviceComponent

Parameters
component:int

the ICC_ProfileRGB constant that represents the component whose TRC you want to retrieve

Returns:float

the gamma value as a float

Annotations
@Override
Exceptions
IllegalArgumentException:
if the component is not REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT
ProfileDataException:
if the profile does not specify the corresponding TRC as a single gamma value
getMatrixback to summary
public float[][] getMatrix()

Returns a 3x3 float matrix constructed from the X, Y, and Z components of the profile's redColorantTag, greenColorantTag, and blueColorantTag.

This matrix can be used for color transforms in the forward direction of the profile--from the profile color space to the CIEXYZ PCS.

Returns:float[][]

a 3x3 float array that contains the x, y, and z components of the profile's redColorantTag, greenColorantTag, and blueColorantTag

getMediaWhitePointback to summary
public float[] getMediaWhitePoint()

Overrides java.awt.color.ICC_Profile.getMediaWhitePoint.

Returns an array that contains the components of the profile's mediaWhitePointTag.

Returns:float[]

a 3-element float array containing the x, y, and z components of the profile's mediaWhitePointTag

Annotations
@Override
getTRCback to summary
public short[] getTRC(int component)

Overrides java.awt.color.ICC_Profile.getTRC.

Returns the TRC for a particular component as an array. Component must be REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT. Otherwise the returned array 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 might be used to generate output values for input values that 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. In other words, the values are really unsigned short values even though they are returned in a short array.

If the profile has specified the corresponding TRC as linear (gamma = 1.0) or as a simple gamma value, this method throws an exception. In this case, the getGamma(int) method should be used to get the gamma value.

Parameters
component:int

the ICC_ProfileRGB constant that represents the component whose TRC you want to retrieve: REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT

Returns:short[]

a short array representing the TRC

Annotations
@Override
Exceptions
IllegalArgumentException:
if the component is not REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT
ProfileDataException:
if the profile does not specify the corresponding TRC as a table
toTagback to summary
private static int toTag(int component)

Converts the ICC_ProfileRGB constant to the appropriate tag.

Parameters
component:int

the ICC_ProfileRGB constant

Returns:int

the tag signature

Exceptions
IllegalArgumentException:
if the component is not REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT