java.awt.color
Class ICC_Profile

java.lang.Object
  extended by java.awt.color.ICC_Profile
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ICC_ProfileGray, ICC_ProfileRGB

public class ICC_Profile
extends Object
implements Serializable

ICC Profile - represents an ICC Color profile. The ICC profile format is a standard file format which maps the transform from a device color space to a standard Profile Color Space (PCS), which can either be CIE L*a*b or CIE XYZ. (With the exception of device link profiles which map from one device space to another) ICC profiles calibrated to specific input/output devices are used when color fidelity is of importance. An instance of ICC_Profile can be created using the getInstance() methods, either using one of the predefined color spaces enumerated in ColorSpace, or from an ICC profile file, or from an input stream. An ICC_ColorSpace object can then be created to transform color values through the profile. The ICC_Profile class implements the version 2 format specified by International Color Consortium Specification ICC.1:1998-09, and its addendum ICC.1A:1999-04, April 1999 (available at www.color.org)

Since:
1.2
See Also:
Serialized Form

Field Summary
static int CLASS_ABSTRACT
           
static int CLASS_COLORSPACECONVERSION
           
static int CLASS_DEVICELINK
           
static int CLASS_DISPLAY
           
static int CLASS_INPUT
          ICC Profile classes
static int CLASS_NAMEDCOLOR
           
static int CLASS_OUTPUT
           
static int icAbsoluteColorimetric
           
static int icCurveCount
           
static int icCurveData
           
static int icHdrAttributes
           
static int icHdrCmmId
           
static int icHdrColorSpace
           
static int icHdrCreator
           
static int icHdrDate
           
static int icHdrDeviceClass
           
static int icHdrFlags
           
static int icHdrIlluminant
           
static int icHdrMagic
           
static int icHdrManufacturer
           
static int icHdrModel
           
static int icHdrPcs
           
static int icHdrPlatform
           
static int icHdrRenderingIntent
           
static int icHdrSize
          Header offsets
static int icHdrVersion
           
static int icPerceptual
          Rendering intents
static int icRelativeColorimetric
           
static int icSaturation
           
static int icSigAbstractClass
           
static int icSigAToB0Tag
          Tag signatures
static int icSigAToB1Tag
           
static int icSigAToB2Tag
           
static int icSigBlueColorantTag
           
static int icSigBlueTRCTag
           
static int icSigBToA0Tag
           
static int icSigBToA1Tag
           
static int icSigBToA2Tag
           
static int icSigCalibrationDateTimeTag
           
static int icSigCharTargetTag
           
static int icSigChromaticityTag
           
static int icSigCmyData
           
static int icSigCmykData
           
static int icSigColorSpaceClass
           
static int icSigCopyrightTag
           
static int icSigCrdInfoTag
           
static int icSigDeviceMfgDescTag
           
static int icSigDeviceModelDescTag
           
static int icSigDeviceSettingsTag
           
static int icSigDisplayClass
           
static int icSigGamutTag
           
static int icSigGrayData
           
static int icSigGrayTRCTag
           
static int icSigGreenColorantTag
           
static int icSigGreenTRCTag
           
static int icSigHead
          Non-ICC tag 'head' for use in retrieving the header with getData()
static int icSigHlsData
           
static int icSigHsvData
           
static int icSigInputClass
          ICC Profile class signatures
static int icSigLabData
           
static int icSigLinkClass
           
static int icSigLuminanceTag
           
static int icSigLuvData
           
static int icSigMeasurementTag
           
static int icSigMediaBlackPointTag
           
static int icSigMediaWhitePointTag
           
static int icSigNamedColor2Tag
           
static int icSigNamedColorClass
           
static int icSigOutputClass
           
static int icSigOutputResponseTag
           
static int icSigPreview0Tag
           
static int icSigPreview1Tag
           
static int icSigPreview2Tag
           
static int icSigProfileDescriptionTag
           
static int icSigProfileSequenceDescTag
           
static int icSigPs2CRD0Tag
           
static int icSigPs2CRD1Tag
           
static int icSigPs2CRD2Tag
           
static int icSigPs2CRD3Tag
           
static int icSigPs2CSATag
           
static int icSigPs2RenderingIntentTag
           
static int icSigRedColorantTag
           
static int icSigRedTRCTag
           
static int icSigRgbData
           
static int icSigScreeningDescTag
           
static int icSigScreeningTag
           
static int icSigSpace2CLR
           
static int icSigSpace3CLR
           
static int icSigSpace4CLR
           
static int icSigSpace5CLR
           
static int icSigSpace6CLR
           
static int icSigSpace7CLR
           
static int icSigSpace8CLR
           
static int icSigSpace9CLR
           
static int icSigSpaceACLR
           
static int icSigSpaceBCLR
           
static int icSigSpaceCCLR
           
static int icSigSpaceDCLR
           
static int icSigSpaceECLR
           
static int icSigSpaceFCLR
           
static int icSigTechnologyTag
           
static int icSigUcrBgTag
           
static int icSigViewingCondDescTag
           
static int icSigViewingConditionsTag
           
static int icSigXYZData
          Color space signatures
static int icSigYCbCrData
           
static int icSigYxyData
           
static int icTagReserved
           
static int icTagType
           
static int icXYZNumberX
           
 
Method Summary
protected  void finalize()
          Free up the used memory.
 int getColorSpaceType()
          Returns the color space of this profile, in terms of the color space constants defined in ColorSpace.
 byte[] getData()
          Returns the data corresponding to this ICC_Profile as a byte array.
 byte[] getData(int tagSignature)
          Returns the ICC profile tag data The non ICC-tag icSigHead is also permitted to request the header data.
static ICC_Profile getInstance(byte[] data)
          Returns an ICC_Profile instance from a byte array of profile data.
static ICC_Profile getInstance(InputStream in)
          Returns an ICC_Profile instance from an InputStream.
static ICC_Profile getInstance(int cspace)
          Returns an predefined ICC_Profile instance.
static ICC_Profile getInstance(String filename)
          Returns an ICC_Profile instance from an ICC Profile file.
 int getMajorVersion()
          Returns the major version number
 int getMinorVersion()
          Returns the minor version number.
 int getNumComponents()
          Get the number of components in the profile's device color space.
 int getPCSType()
          Returns the color space of this profile's Profile Connection Space (OCS) In terms of the color space constants defined in ColorSpace.
 int getProfileClass()
          Returns the device class of this profile, (E.g.
protected  Object readResolve()
          After deserializing we must determine if the class we want is really one of the more specialized ICC_ProfileRGB or ICC_ProfileGray classes.
 void setData(int tagSignature, byte[] data)
          Sets the ICC profile tag data.
 void write(OutputStream out)
          Writes the profile data in ICC profile file-format to a stream.
 void write(String filename)
          Writes the profile data to an ICC profile file.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_INPUT

public static final int CLASS_INPUT
ICC Profile classes

See Also:
Constant Field Values

CLASS_DISPLAY

public static final int CLASS_DISPLAY
See Also:
Constant Field Values

CLASS_OUTPUT

public static final int CLASS_OUTPUT
See Also:
Constant Field Values

CLASS_DEVICELINK

public static final int CLASS_DEVICELINK
See Also:
Constant Field Values

CLASS_COLORSPACECONVERSION

public static final int CLASS_COLORSPACECONVERSION
See Also:
Constant Field Values

CLASS_ABSTRACT

public static final int CLASS_ABSTRACT
See Also:
Constant Field Values

CLASS_NAMEDCOLOR

public static final int CLASS_NAMEDCOLOR
See Also:
Constant Field Values

icSigInputClass

public static final int icSigInputClass
ICC Profile class signatures

See Also:
Constant Field Values

icSigDisplayClass

public static final int icSigDisplayClass
See Also:
Constant Field Values

icSigOutputClass

public static final int icSigOutputClass
See Also:
Constant Field Values

icSigLinkClass

public static final int icSigLinkClass
See Also:
Constant Field Values

icSigColorSpaceClass

public static final int icSigColorSpaceClass
See Also:
Constant Field Values

icSigAbstractClass

public static final int icSigAbstractClass
See Also:
Constant Field Values

icSigNamedColorClass

public static final int icSigNamedColorClass
See Also:
Constant Field Values

icSigXYZData

public static final int icSigXYZData
Color space signatures

See Also:
Constant Field Values

icSigLabData

public static final int icSigLabData
See Also:
Constant Field Values

icSigLuvData

public static final int icSigLuvData
See Also:
Constant Field Values

icSigYCbCrData

public static final int icSigYCbCrData
See Also:
Constant Field Values

icSigYxyData

public static final int icSigYxyData
See Also:
Constant Field Values

icSigRgbData

public static final int icSigRgbData
See Also:
Constant Field Values

icSigGrayData

public static final int icSigGrayData
See Also:
Constant Field Values

icSigHsvData

public static final int icSigHsvData
See Also:
Constant Field Values

icSigHlsData

public static final int icSigHlsData
See Also:
Constant Field Values

icSigCmykData

public static final int icSigCmykData
See Also:
Constant Field Values

icSigCmyData

public static final int icSigCmyData
See Also:
Constant Field Values

icSigSpace2CLR

public static final int icSigSpace2CLR
See Also:
Constant Field Values

icSigSpace3CLR

public static final int icSigSpace3CLR
See Also:
Constant Field Values

icSigSpace4CLR

public static final int icSigSpace4CLR
See Also:
Constant Field Values

icSigSpace5CLR

public static final int icSigSpace5CLR
See Also:
Constant Field Values

icSigSpace6CLR

public static final int icSigSpace6CLR
See Also:
Constant Field Values

icSigSpace7CLR

public static final int icSigSpace7CLR
See Also:
Constant Field Values

icSigSpace8CLR

public static final int icSigSpace8CLR
See Also:
Constant Field Values

icSigSpace9CLR

public static final int icSigSpace9CLR
See Also:
Constant Field Values

icSigSpaceACLR

public static final int icSigSpaceACLR
See Also:
Constant Field Values

icSigSpaceBCLR

public static final int icSigSpaceBCLR
See Also:
Constant Field Values

icSigSpaceCCLR

public static final int icSigSpaceCCLR
See Also:
Constant Field Values

icSigSpaceDCLR

public static final int icSigSpaceDCLR
See Also:
Constant Field Values

icSigSpaceECLR

public static final int icSigSpaceECLR
See Also:
Constant Field Values

icSigSpaceFCLR

public static final int icSigSpaceFCLR
See Also:
Constant Field Values

icPerceptual

public static final int icPerceptual
Rendering intents

See Also:
Constant Field Values

icRelativeColorimetric

public static final int icRelativeColorimetric
See Also:
Constant Field Values

icSaturation

public static final int icSaturation
See Also:
Constant Field Values

icAbsoluteColorimetric

public static final int icAbsoluteColorimetric
See Also:
Constant Field Values

icSigAToB0Tag

public static final int icSigAToB0Tag
Tag signatures

See Also:
Constant Field Values

icSigAToB1Tag

public static final int icSigAToB1Tag
See Also:
Constant Field Values

icSigAToB2Tag

public static final int icSigAToB2Tag
See Also:
Constant Field Values

icSigBlueColorantTag

public static final int icSigBlueColorantTag
See Also:
Constant Field Values

icSigBlueTRCTag

public static final int icSigBlueTRCTag
See Also:
Constant Field Values

icSigBToA0Tag

public static final int icSigBToA0Tag
See Also:
Constant Field Values

icSigBToA1Tag

public static final int icSigBToA1Tag
See Also:
Constant Field Values

icSigBToA2Tag

public static final int icSigBToA2Tag
See Also:
Constant Field Values

icSigCalibrationDateTimeTag

public static final int icSigCalibrationDateTimeTag
See Also:
Constant Field Values

icSigCharTargetTag

public static final int icSigCharTargetTag
See Also:
Constant Field Values

icSigCopyrightTag

public static final int icSigCopyrightTag
See Also:
Constant Field Values

icSigCrdInfoTag

public static final int icSigCrdInfoTag
See Also:
Constant Field Values

icSigDeviceMfgDescTag

public static final int icSigDeviceMfgDescTag
See Also:
Constant Field Values

icSigDeviceModelDescTag

public static final int icSigDeviceModelDescTag
See Also:
Constant Field Values

icSigDeviceSettingsTag

public static final int icSigDeviceSettingsTag
See Also:
Constant Field Values

icSigGamutTag

public static final int icSigGamutTag
See Also:
Constant Field Values

icSigGrayTRCTag

public static final int icSigGrayTRCTag
See Also:
Constant Field Values

icSigGreenColorantTag

public static final int icSigGreenColorantTag
See Also:
Constant Field Values

icSigGreenTRCTag

public static final int icSigGreenTRCTag
See Also:
Constant Field Values

icSigLuminanceTag

public static final int icSigLuminanceTag
See Also:
Constant Field Values

icSigMeasurementTag

public static final int icSigMeasurementTag
See Also:
Constant Field Values

icSigMediaBlackPointTag

public static final int icSigMediaBlackPointTag
See Also:
Constant Field Values

icSigMediaWhitePointTag

public static final int icSigMediaWhitePointTag
See Also:
Constant Field Values

icSigNamedColor2Tag

public static final int icSigNamedColor2Tag
See Also:
Constant Field Values

icSigOutputResponseTag

public static final int icSigOutputResponseTag
See Also:
Constant Field Values

icSigPreview0Tag

public static final int icSigPreview0Tag
See Also:
Constant Field Values

icSigPreview1Tag

public static final int icSigPreview1Tag
See Also:
Constant Field Values

icSigPreview2Tag

public static final int icSigPreview2Tag
See Also:
Constant Field Values

icSigProfileDescriptionTag

public static final int icSigProfileDescriptionTag
See Also:
Constant Field Values

icSigProfileSequenceDescTag

public static final int icSigProfileSequenceDescTag
See Also:
Constant Field Values

icSigPs2CRD0Tag

public static final int icSigPs2CRD0Tag
See Also:
Constant Field Values

icSigPs2CRD1Tag

public static final int icSigPs2CRD1Tag
See Also:
Constant Field Values

icSigPs2CRD2Tag

public static final int icSigPs2CRD2Tag
See Also:
Constant Field Values

icSigPs2CRD3Tag

public static final int icSigPs2CRD3Tag
See Also:
Constant Field Values

icSigPs2CSATag

public static final int icSigPs2CSATag
See Also:
Constant Field Values

icSigPs2RenderingIntentTag

public static final int icSigPs2RenderingIntentTag
See Also:
Constant Field Values

icSigRedColorantTag

public static final int icSigRedColorantTag
See Also:
Constant Field Values

icSigRedTRCTag

public static final int icSigRedTRCTag
See Also:
Constant Field Values

icSigScreeningDescTag

public static final int icSigScreeningDescTag
See Also:
Constant Field Values

icSigScreeningTag

public static final int icSigScreeningTag
See Also:
Constant Field Values

icSigTechnologyTag

public static final int icSigTechnologyTag
See Also:
Constant Field Values

icSigUcrBgTag

public static final int icSigUcrBgTag
See Also:
Constant Field Values

icSigViewingCondDescTag

public static final int icSigViewingCondDescTag
See Also:
Constant Field Values

icSigViewingConditionsTag

public static final int icSigViewingConditionsTag
See Also:
Constant Field Values

icSigChromaticityTag

public static final int icSigChromaticityTag
See Also:
Constant Field Values

icSigHead

public static final int icSigHead
Non-ICC tag 'head' for use in retrieving the header with getData()

See Also:
Constant Field Values

icHdrSize

public static final int icHdrSize
Header offsets

See Also:
Constant Field Values

icHdrCmmId

public static final int icHdrCmmId
See Also:
Constant Field Values

icHdrVersion

public static final int icHdrVersion
See Also:
Constant Field Values

icHdrDeviceClass

public static final int icHdrDeviceClass
See Also:
Constant Field Values

icHdrColorSpace

public static final int icHdrColorSpace
See Also:
Constant Field Values

icHdrPcs

public static final int icHdrPcs
See Also:
Constant Field Values

icHdrDate

public static final int icHdrDate
See Also:
Constant Field Values

icHdrMagic

public static final int icHdrMagic
See Also:
Constant Field Values

icHdrPlatform

public static final int icHdrPlatform
See Also:
Constant Field Values

icHdrFlags

public static final int icHdrFlags
See Also:
Constant Field Values

icHdrManufacturer

public static final int icHdrManufacturer
See Also:
Constant Field Values

icHdrModel

public static final int icHdrModel
See Also:
Constant Field Values

icHdrAttributes

public static final int icHdrAttributes
See Also:
Constant Field Values

icHdrRenderingIntent

public static final int icHdrRenderingIntent
See Also:
Constant Field Values

icHdrIlluminant

public static final int icHdrIlluminant
See Also:
Constant Field Values

icHdrCreator

public static final int icHdrCreator
See Also:
Constant Field Values

icTagType

public static final int icTagType
See Also:
Constant Field Values

icTagReserved

public static final int icTagReserved
See Also:
Constant Field Values

icCurveCount

public static final int icCurveCount
See Also:
Constant Field Values

icCurveData

public static final int icCurveData
See Also:
Constant Field Values

icXYZNumberX

public static final int icXYZNumberX
See Also:
Constant Field Values
Method Detail

finalize

protected void finalize()
Free up the used memory.

Overrides:
finalize in class Object
See Also:
System.gc(), System.runFinalizersOnExit(boolean), java.lang.ref

getInstance

public static ICC_Profile getInstance(byte[] data)
Returns an ICC_Profile instance from a byte array of profile data. An instance of the specialized classes ICC_ProfileRGB or ICC_ProfileGray may be returned if appropriate.

Parameters:
data - - the profile data
Returns:
An ICC_Profile object
Throws:
IllegalArgumentException - if the profile data is an invalid v2 profile.

getInstance

public static ICC_Profile getInstance(int cspace)
Returns an predefined ICC_Profile instance. This will construct an ICC_Profile instance from one of the predefined color spaces in the ColorSpace class. (e.g. CS_sRGB, CS_GRAY, etc) An instance of the specialized classes ICC_ProfileRGB or ICC_ProfileGray may be returned if appropriate.

Returns:
An ICC_Profile object

getInstance

public static ICC_Profile getInstance(String filename)
                               throws IOException
Returns an ICC_Profile instance from an ICC Profile file. An instance of the specialized classes ICC_ProfileRGB or ICC_ProfileGray may be returned if appropriate.

Parameters:
filename - - the file name of the profile file.
Returns:
An ICC_Profile object
Throws:
IllegalArgumentException - if the profile data is an invalid v2 profile.
IOException - if the file could not be read.

getInstance

public static ICC_Profile getInstance(InputStream in)
                               throws IOException
Returns an ICC_Profile instance from an InputStream. This method can be used for reading ICC profiles embedded in files which support this. (JPEG and SVG for instance). The stream is treated in the following way: The profile header (128 bytes) is read first, and the header is validated. If the profile header is valid, it will then attempt to read the rest of the profile from the stream. The stream is not closed after reading. An instance of the specialized classes ICC_ProfileRGB or ICC_ProfileGray may be returned if appropriate.

Parameters:
in - - the input stream to read the profile from.
Returns:
An ICC_Profile object
Throws:
IllegalArgumentException - if the profile data is an invalid v2 profile.
IOException - if the stream could not be read.

getMajorVersion

public int getMajorVersion()
Returns the major version number


getMinorVersion

public int getMinorVersion()
Returns the minor version number. Only the least-significant byte contains data, in BCD form: the least-significant nibble is the BCD bug fix revision, the most-significant nibble is the BCD minor revision number. (E.g. For a v2.1.0 profile this will return 0x10)


getProfileClass

public int getProfileClass()
Returns the device class of this profile, (E.g. CLASS_INPUT for a scanner profile, CLASS_OUTPUT for a printer)


getColorSpaceType

public int getColorSpaceType()
Returns the color space of this profile, in terms of the color space constants defined in ColorSpace. (For example, it may be a ColorSpace.TYPE_RGB)


getPCSType

public int getPCSType()
Returns the color space of this profile's Profile Connection Space (OCS) In terms of the color space constants defined in ColorSpace. This may be TYPE_XYZ or TYPE_Lab


write

public void write(String filename)
           throws IOException
Writes the profile data to an ICC profile file.

Parameters:
filename - - The name of the file to write
Throws:
IOException - if the write failed.

write

public void write(OutputStream out)
           throws IOException
Writes the profile data in ICC profile file-format to a stream. This is useful for embedding ICC profiles in file formats which support this (such as JPEG and SVG). The stream is not closed after writing.

Parameters:
out - - The outputstream to which the profile data should be written
Throws:
IOException - if the write failed.

getData

public byte[] getData()
Returns the data corresponding to this ICC_Profile as a byte array.

Returns:
The data in a byte array, where the first element corresponds to first byte of the profile file.

getData

public byte[] getData(int tagSignature)
Returns the ICC profile tag data The non ICC-tag icSigHead is also permitted to request the header data.

Parameters:
tagSignature - The ICC signature of the requested tag
Returns:
A byte array containing the tag data

setData

public void setData(int tagSignature,
                    byte[] data)
Sets the ICC profile tag data. Note that an ICC profile can only contain one tag of each type, if a tag already exists with the given signature, it is replaced.

Parameters:
tagSignature - - The signature of the tag to set
data - - A byte array containing the tag data

getNumComponents

public int getNumComponents()
Get the number of components in the profile's device color space.


readResolve

protected Object readResolve()
                      throws ObjectStreamException
After deserializing we must determine if the class we want is really one of the more specialized ICC_ProfileRGB or ICC_ProfileGray classes.

Throws:
ObjectStreamException