java.awt.color
Class ICC_Profile

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

public class ICC_Profile
extends Object
implements Serializable

A representation of color profile data for device independent and device dependent color spaces based on the International Color Consortium Specification ICC.1:1998-09, File Format for Color Profiles, September 1998, and the addendum ICC.1A:1999-04, April 1999, to that specification (see http://www.color.org).

An ICC_ColorSpace object can be constructed from an appropriate ICC_Profile. Typically, an ICC_ColorSpace would be associated with an ICC Profile which is either an input, display, or output profile (see the ICC specification). There are also device link, abstract, color space conversion, and named color profiles. These are less useful for tagging a color or image, but are useful for other purposes (in particular device link profiles can provide improved performance for converting from one device's color space to another's).

ICC Profiles represent transformations from the color space of the profile (e.g. a monitor) to a Profile Connection Space (PCS). Profiles of interest for tagging images or colors have a PCS which is one of the two specific device independent spaces (one CIEXYZ space and one CIELab space) defined in the ICC Profile Format Specification. Most profiles of interest either have invertible transformations or explicitly specify transformations going both directions.

See Also:
ICC_ColorSpace, Serialized Form

Field Summary
static int CLASS_ABSTRACT
          Profile class is abstract.
static int CLASS_COLORSPACECONVERSION
          Profile class is color space conversion.
static int CLASS_DEVICELINK
          Profile class is device link.
static int CLASS_DISPLAY
          Profile class is display.
static int CLASS_INPUT
          Profile class is input.
static int CLASS_NAMEDCOLOR
          Profile class is named color.
static int CLASS_OUTPUT
          Profile class is output.
private  sun.awt.color.ProfileDeferralInfo deferralInfo
           
private static ICC_Profile GRAYprofile
           
static int icAbsoluteColorimetric
          ICC Profile Rendering Intent: AbsoluteColorimetric.
private  int iccProfileSerializedDataVersion
          Version of the format of additional serialized data in the stream.
static int icCurveCount
          ICC Profile Constant: curveType count.
static int icCurveData
          ICC Profile Constant: curveType data.
static int icHdrAttributes
          ICC Profile Header Location: device attributes.
static int icHdrCmmId
          ICC Profile Header Location: CMM for this profile.
static int icHdrColorSpace
          ICC Profile Header Location: color space of data.
static int icHdrCreator
          ICC Profile Header Location: profile creator.
static int icHdrDate
          ICC Profile Header Location: date profile was created.
static int icHdrDeviceClass
          ICC Profile Header Location: type of profile.
static int icHdrFlags
          ICC Profile Header Location: various bit settings.
static int icHdrIlluminant
          ICC Profile Header Location: profile illuminant.
static int icHdrMagic
          ICC Profile Header Location: icMagicNumber.
static int icHdrManufacturer
          ICC Profile Header Location: device manufacturer.
static int icHdrModel
          ICC Profile Header Location: device model number.
static int icHdrPcs
          ICC Profile Header Location: PCS - XYZ or Lab only.
static int icHdrPlatform
          ICC Profile Header Location: primary platform.
static int icHdrRenderingIntent
          ICC Profile Header Location: rendering intent.
static int icHdrSize
          ICC Profile Header Location: profile size in bytes.
static int icHdrVersion
          ICC Profile Header Location: format version number.
static int icPerceptual
          ICC Profile Rendering Intent: Perceptual.
static int icRelativeColorimetric
          ICC Profile Rendering Intent: RelativeColorimetric.
static int icSaturation
          ICC Profile Rendering Intent: Saturation.
static int icSigAbstractClass
          ICC Profile Class Signature: 'abst'.
static int icSigAToB0Tag
          ICC Profile Tag Signature: 'A2B0'.
static int icSigAToB1Tag
          ICC Profile Tag Signature: 'A2B1'.
static int icSigAToB2Tag
          ICC Profile Tag Signature: 'A2B2'.
static int icSigBlueColorantTag
          ICC Profile Tag Signature: 'bXYZ'.
static int icSigBlueTRCTag
          ICC Profile Tag Signature: 'bTRC'.
static int icSigBToA0Tag
          ICC Profile Tag Signature: 'B2A0'.
static int icSigBToA1Tag
          ICC Profile Tag Signature: 'B2A1'.
static int icSigBToA2Tag
          ICC Profile Tag Signature: 'B2A2'.
static int icSigCalibrationDateTimeTag
          ICC Profile Tag Signature: 'calt'.
static int icSigCharTargetTag
          ICC Profile Tag Signature: 'targ'.
static int icSigChromaticityTag
          ICC Profile Tag Signature: 'chrm'.
static int icSigCmyData
          ICC Profile Color Space Type Signature: 'CMY '.
static int icSigCmykData
          ICC Profile Color Space Type Signature: 'CMYK'.
static int icSigColorSpaceClass
          ICC Profile Class Signature: 'spac'.
static int icSigCopyrightTag
          ICC Profile Tag Signature: 'cprt'.
static int icSigCrdInfoTag
          ICC Profile Tag Signature: 'crdi'.
static int icSigDeviceMfgDescTag
          ICC Profile Tag Signature: 'dmnd'.
static int icSigDeviceModelDescTag
          ICC Profile Tag Signature: 'dmdd'.
static int icSigDeviceSettingsTag
          ICC Profile Tag Signature: 'devs'.
static int icSigDisplayClass
          ICC Profile Class Signature: 'mntr'.
static int icSigGamutTag
          ICC Profile Tag Signature: 'gamt'.
static int icSigGrayData
          ICC Profile Color Space Type Signature: 'GRAY'.
static int icSigGrayTRCTag
          ICC Profile Tag Signature: 'kTRC'.
static int icSigGreenColorantTag
          ICC Profile Tag Signature: 'gXYZ'.
static int icSigGreenTRCTag
          ICC Profile Tag Signature: 'gTRC'.
static int icSigHead
          ICC Profile Tag Signature: 'head' - special.
static int icSigHlsData
          ICC Profile Color Space Type Signature: 'HLS'.
static int icSigHsvData
          ICC Profile Color Space Type Signature: 'HSV'.
static int icSigInputClass
          ICC Profile Class Signature: 'scnr'.
static int icSigLabData
          ICC Profile Color Space Type Signature: 'Lab '.
static int icSigLinkClass
          ICC Profile Class Signature: 'link'.
static int icSigLuminanceTag
          ICC Profile Tag Signature: 'lumi'.
static int icSigLuvData
          ICC Profile Color Space Type Signature: 'Luv '.
static int icSigMeasurementTag
          ICC Profile Tag Signature: 'meas'.
static int icSigMediaBlackPointTag
          ICC Profile Tag Signature: 'bkpt'.
static int icSigMediaWhitePointTag
          ICC Profile Tag Signature: 'wtpt'.
static int icSigNamedColor2Tag
          ICC Profile Tag Signature: 'ncl2'.
static int icSigNamedColorClass
          ICC Profile Class Signature: 'nmcl'.
static int icSigOutputClass
          ICC Profile Class Signature: 'prtr'.
static int icSigOutputResponseTag
          ICC Profile Tag Signature: 'resp'.
static int icSigPreview0Tag
          ICC Profile Tag Signature: 'pre0'.
static int icSigPreview1Tag
          ICC Profile Tag Signature: 'pre1'.
static int icSigPreview2Tag
          ICC Profile Tag Signature: 'pre2'.
static int icSigProfileDescriptionTag
          ICC Profile Tag Signature: 'desc'.
static int icSigProfileSequenceDescTag
          ICC Profile Tag Signature: 'pseq'.
static int icSigPs2CRD0Tag
          ICC Profile Tag Signature: 'psd0'.
static int icSigPs2CRD1Tag
          ICC Profile Tag Signature: 'psd1'.
static int icSigPs2CRD2Tag
          ICC Profile Tag Signature: 'psd2'.
static int icSigPs2CRD3Tag
          ICC Profile Tag Signature: 'psd3'.
static int icSigPs2CSATag
          ICC Profile Tag Signature: 'ps2s'.
static int icSigPs2RenderingIntentTag
          ICC Profile Tag Signature: 'ps2i'.
static int icSigRedColorantTag
          ICC Profile Tag Signature: 'rXYZ'.
static int icSigRedTRCTag
          ICC Profile Tag Signature: 'rTRC'.
static int icSigRgbData
          ICC Profile Color Space Type Signature: 'RGB '.
static int icSigScreeningDescTag
          ICC Profile Tag Signature: 'scrd'.
static int icSigScreeningTag
          ICC Profile Tag Signature: 'scrn'.
static int icSigSpace2CLR
          ICC Profile Color Space Type Signature: '2CLR'.
static int icSigSpace3CLR
          ICC Profile Color Space Type Signature: '3CLR'.
static int icSigSpace4CLR
          ICC Profile Color Space Type Signature: '4CLR'.
static int icSigSpace5CLR
          ICC Profile Color Space Type Signature: '5CLR'.
static int icSigSpace6CLR
          ICC Profile Color Space Type Signature: '6CLR'.
static int icSigSpace7CLR
          ICC Profile Color Space Type Signature: '7CLR'.
static int icSigSpace8CLR
          ICC Profile Color Space Type Signature: '8CLR'.
static int icSigSpace9CLR
          ICC Profile Color Space Type Signature: '9CLR'.
static int icSigSpaceACLR
          ICC Profile Color Space Type Signature: 'ACLR'.
static int icSigSpaceBCLR
          ICC Profile Color Space Type Signature: 'BCLR'.
static int icSigSpaceCCLR
          ICC Profile Color Space Type Signature: 'CCLR'.
static int icSigSpaceDCLR
          ICC Profile Color Space Type Signature: 'DCLR'.
static int icSigSpaceECLR
          ICC Profile Color Space Type Signature: 'ECLR'.
static int icSigSpaceFCLR
          ICC Profile Color Space Type Signature: 'FCLR'.
static int icSigTechnologyTag
          ICC Profile Tag Signature: 'tech'.
static int icSigUcrBgTag
          ICC Profile Tag Signature: 'bfd '.
static int icSigViewingCondDescTag
          ICC Profile Tag Signature: 'vued'.
static int icSigViewingConditionsTag
          ICC Profile Tag Signature: 'view'.
static int icSigXYZData
          ICC Profile Color Space Type Signature: 'XYZ '.
static int icSigYCbCrData
          ICC Profile Color Space Type Signature: 'YCbr'.
static int icSigYxyData
          ICC Profile Color Space Type Signature: 'Yxy '.
static int icTagReserved
          ICC Profile Constant: reserved.
static int icTagType
          ICC Profile Constant: tag type signaturE.
static int icXYZNumberX
          ICC Profile Constant: XYZNumber X.
(package private)  long ID
           
private static ICC_Profile LINEAR_RGBprofile
           
private  sun.awt.color.ProfileActivator profileActivator
           
private static ICC_Profile PYCCprofile
           
private  ICC_Profile resolvedDeserializedProfile
           
private static ICC_Profile sRGBprofile
           
private static ICC_Profile XYZprofile
           
 
Constructor Summary
(package private) ICC_Profile(long ID)
          Constructs an ICC_Profile object with a given ID.
(package private) ICC_Profile(sun.awt.color.ProfileDeferralInfo pdi)
          Constructs an ICC_Profile object whose loading will be deferred.
 
Method Summary
(package private)  void activateDeferredProfile()
           
protected  void finalize()
          Frees the resources associated with an ICC_Profile object.
 int getColorSpaceType()
          Returns the color space type.
(package private) static int getColorSpaceType(long profileID)
           
 byte[] getData()
          Returns a byte array corresponding to the data of this ICC_Profile.
 byte[] getData(int tagSignature)
          Returns a particular tagged data element from the profile as a byte array.
(package private) static byte[] getData(long profileID, int tagSignature)
           
(package private) static ICC_Profile getDeferredInstance(sun.awt.color.ProfileDeferralInfo pdi)
          Constructs an ICC_Profile for which the actual loading of the profile data from a file and the initialization of the CMM should be deferred as long as possible.
(package private)  float getGamma(int theTagSignature)
          Returns a gamma value representing a tone reproduction curve (TRC).
static ICC_Profile getInstance(byte[] data)
          Constructs an ICC_Profile object corresponding to the data in a byte array.
static ICC_Profile getInstance(InputStream s)
          Constructs an ICC_Profile corresponding to the data in an InputStream.
static ICC_Profile getInstance(int cspace)
          Constructs an ICC_Profile corresponding to one of the specific color spaces defined by the ColorSpace class (for example CS_sRGB).
static ICC_Profile getInstance(String fileName)
          Constructs an ICC_Profile corresponding to the data in a file.
 int getMajorVersion()
          Returns profile major version.
(package private)  float[] getMediaWhitePoint()
          Returns a float array of length 3 containing the X, Y, and Z components of the mediaWhitePointTag in the ICC profile.
 int getMinorVersion()
          Returns profile minor version.
 int getNumComponents()
          Returns the number of color components in the "input" color space of this profile.
 int getPCSType()
          Returns the color space type of the Profile Connection Space (PCS).
(package private) static int getPCSType(long profileID)
           
 int getProfileClass()
          Returns the profile class.
(package private) static byte[] getProfileDataFromStream(InputStream s)
           
(package private)  int getRenderingIntent()
          Returns the rendering intent of the profile.
(package private)  short[] getTRC(int theTagSignature)
          Returns the TRC as an array of shorts.
(package private)  float[] getXYZTag(int theTagSignature)
          Returns a float array of length 3 containing the X, Y, and Z components encoded in an XYZType tag.
(package private) static int iccCStoJCS(int theColorSpaceSig)
           
(package private) static int intFromBigEndian(byte[] array, int index)
           
(package private) static void intToBigEndian(int value, byte[] array, int index)
           
private static FileInputStream openProfile(String fileName)
           
private static FileInputStream privilegedOpenProfile(String fileName)
           
private  void readObject(ObjectInputStream s)
          Reads default serializable fields from the stream.
protected  Object readResolve()
          Resolves instances being deserialized into instances registered with CMM.
 void setData(int tagSignature, byte[] tagData)
          Sets a particular tagged data element in the profile from a byte array.
(package private)  void setRenderingIntent(int renderingIntent)
          Sets the rendering intent of the profile.
(package private) static short shortFromBigEndian(byte[] array, int index)
           
(package private) static void shortToBigEndian(short value, byte[] array, int index)
           
 void write(OutputStream s)
          Write this ICC_Profile to an OutputStream.
 void write(String fileName)
          Write this ICC_Profile to a file.
private  void writeObject(ObjectOutputStream s)
          Writes default serializable fields to the stream.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ID

transient long ID

deferralInfo

private transient sun.awt.color.ProfileDeferralInfo deferralInfo

profileActivator

private transient sun.awt.color.ProfileActivator profileActivator

sRGBprofile

private static ICC_Profile sRGBprofile

XYZprofile

private static ICC_Profile XYZprofile

PYCCprofile

private static ICC_Profile PYCCprofile

GRAYprofile

private static ICC_Profile GRAYprofile

LINEAR_RGBprofile

private static ICC_Profile LINEAR_RGBprofile

CLASS_INPUT

public static final int CLASS_INPUT
Profile class is input.

See Also:
Constant Field Values

CLASS_DISPLAY

public static final int CLASS_DISPLAY
Profile class is display.

See Also:
Constant Field Values

CLASS_OUTPUT

public static final int CLASS_OUTPUT
Profile class is output.

See Also:
Constant Field Values

CLASS_DEVICELINK

public static final int CLASS_DEVICELINK
Profile class is device link.

See Also:
Constant Field Values

CLASS_COLORSPACECONVERSION

public static final int CLASS_COLORSPACECONVERSION
Profile class is color space conversion.

See Also:
Constant Field Values

CLASS_ABSTRACT

public static final int CLASS_ABSTRACT
Profile class is abstract.

See Also:
Constant Field Values

CLASS_NAMEDCOLOR

public static final int CLASS_NAMEDCOLOR
Profile class is named color.

See Also:
Constant Field Values

icSigXYZData

public static final int icSigXYZData
ICC Profile Color Space Type Signature: 'XYZ '.

See Also:
Constant Field Values

icSigLabData

public static final int icSigLabData
ICC Profile Color Space Type Signature: 'Lab '.

See Also:
Constant Field Values

icSigLuvData

public static final int icSigLuvData
ICC Profile Color Space Type Signature: 'Luv '.

See Also:
Constant Field Values

icSigYCbCrData

public static final int icSigYCbCrData
ICC Profile Color Space Type Signature: 'YCbr'.

See Also:
Constant Field Values

icSigYxyData

public static final int icSigYxyData
ICC Profile Color Space Type Signature: 'Yxy '.

See Also:
Constant Field Values

icSigRgbData

public static final int icSigRgbData
ICC Profile Color Space Type Signature: 'RGB '.

See Also:
Constant Field Values

icSigGrayData

public static final int icSigGrayData
ICC Profile Color Space Type Signature: 'GRAY'.

See Also:
Constant Field Values

icSigHsvData

public static final int icSigHsvData
ICC Profile Color Space Type Signature: 'HSV'.

See Also:
Constant Field Values

icSigHlsData

public static final int icSigHlsData
ICC Profile Color Space Type Signature: 'HLS'.

See Also:
Constant Field Values

icSigCmykData

public static final int icSigCmykData
ICC Profile Color Space Type Signature: 'CMYK'.

See Also:
Constant Field Values

icSigCmyData

public static final int icSigCmyData
ICC Profile Color Space Type Signature: 'CMY '.

See Also:
Constant Field Values

icSigSpace2CLR

public static final int icSigSpace2CLR
ICC Profile Color Space Type Signature: '2CLR'.

See Also:
Constant Field Values

icSigSpace3CLR

public static final int icSigSpace3CLR
ICC Profile Color Space Type Signature: '3CLR'.

See Also:
Constant Field Values

icSigSpace4CLR

public static final int icSigSpace4CLR
ICC Profile Color Space Type Signature: '4CLR'.

See Also:
Constant Field Values

icSigSpace5CLR

public static final int icSigSpace5CLR
ICC Profile Color Space Type Signature: '5CLR'.

See Also:
Constant Field Values

icSigSpace6CLR

public static final int icSigSpace6CLR
ICC Profile Color Space Type Signature: '6CLR'.

See Also:
Constant Field Values

icSigSpace7CLR

public static final int icSigSpace7CLR
ICC Profile Color Space Type Signature: '7CLR'.

See Also:
Constant Field Values

icSigSpace8CLR

public static final int icSigSpace8CLR
ICC Profile Color Space Type Signature: '8CLR'.

See Also:
Constant Field Values

icSigSpace9CLR

public static final int icSigSpace9CLR
ICC Profile Color Space Type Signature: '9CLR'.

See Also:
Constant Field Values

icSigSpaceACLR

public static final int icSigSpaceACLR
ICC Profile Color Space Type Signature: 'ACLR'.

See Also:
Constant Field Values

icSigSpaceBCLR

public static final int icSigSpaceBCLR
ICC Profile Color Space Type Signature: 'BCLR'.

See Also:
Constant Field Values

icSigSpaceCCLR

public static final int icSigSpaceCCLR
ICC Profile Color Space Type Signature: 'CCLR'.

See Also:
Constant Field Values

icSigSpaceDCLR

public static final int icSigSpaceDCLR
ICC Profile Color Space Type Signature: 'DCLR'.

See Also:
Constant Field Values

icSigSpaceECLR

public static final int icSigSpaceECLR
ICC Profile Color Space Type Signature: 'ECLR'.

See Also:
Constant Field Values

icSigSpaceFCLR

public static final int icSigSpaceFCLR
ICC Profile Color Space Type Signature: 'FCLR'.

See Also:
Constant Field Values

icSigInputClass

public static final int icSigInputClass
ICC Profile Class Signature: 'scnr'.

See Also:
Constant Field Values

icSigDisplayClass

public static final int icSigDisplayClass
ICC Profile Class Signature: 'mntr'.

See Also:
Constant Field Values

icSigOutputClass

public static final int icSigOutputClass
ICC Profile Class Signature: 'prtr'.

See Also:
Constant Field Values

icSigLinkClass

public static final int icSigLinkClass
ICC Profile Class Signature: 'link'.

See Also:
Constant Field Values

icSigAbstractClass

public static final int icSigAbstractClass
ICC Profile Class Signature: 'abst'.

See Also:
Constant Field Values

icSigColorSpaceClass

public static final int icSigColorSpaceClass
ICC Profile Class Signature: 'spac'.

See Also:
Constant Field Values

icSigNamedColorClass

public static final int icSigNamedColorClass
ICC Profile Class Signature: 'nmcl'.

See Also:
Constant Field Values

icPerceptual

public static final int icPerceptual
ICC Profile Rendering Intent: Perceptual.

See Also:
Constant Field Values

icRelativeColorimetric

public static final int icRelativeColorimetric
ICC Profile Rendering Intent: RelativeColorimetric.

See Also:
Constant Field Values

icSaturation

public static final int icSaturation
ICC Profile Rendering Intent: Saturation.

See Also:
Constant Field Values

icAbsoluteColorimetric

public static final int icAbsoluteColorimetric
ICC Profile Rendering Intent: AbsoluteColorimetric.

See Also:
Constant Field Values

icSigHead

public static final int icSigHead
ICC Profile Tag Signature: 'head' - special.

See Also:
Constant Field Values

icSigAToB0Tag

public static final int icSigAToB0Tag
ICC Profile Tag Signature: 'A2B0'.

See Also:
Constant Field Values

icSigAToB1Tag

public static final int icSigAToB1Tag
ICC Profile Tag Signature: 'A2B1'.

See Also:
Constant Field Values

icSigAToB2Tag

public static final int icSigAToB2Tag
ICC Profile Tag Signature: 'A2B2'.

See Also:
Constant Field Values

icSigBlueColorantTag

public static final int icSigBlueColorantTag
ICC Profile Tag Signature: 'bXYZ'.

See Also:
Constant Field Values

icSigBlueTRCTag

public static final int icSigBlueTRCTag
ICC Profile Tag Signature: 'bTRC'.

See Also:
Constant Field Values

icSigBToA0Tag

public static final int icSigBToA0Tag
ICC Profile Tag Signature: 'B2A0'.

See Also:
Constant Field Values

icSigBToA1Tag

public static final int icSigBToA1Tag
ICC Profile Tag Signature: 'B2A1'.

See Also:
Constant Field Values

icSigBToA2Tag

public static final int icSigBToA2Tag
ICC Profile Tag Signature: 'B2A2'.

See Also:
Constant Field Values

icSigCalibrationDateTimeTag

public static final int icSigCalibrationDateTimeTag
ICC Profile Tag Signature: 'calt'.

See Also:
Constant Field Values

icSigCharTargetTag

public static final int icSigCharTargetTag
ICC Profile Tag Signature: 'targ'.

See Also:
Constant Field Values

icSigCopyrightTag

public static final int icSigCopyrightTag
ICC Profile Tag Signature: 'cprt'.

See Also:
Constant Field Values

icSigCrdInfoTag

public static final int icSigCrdInfoTag
ICC Profile Tag Signature: 'crdi'.

See Also:
Constant Field Values

icSigDeviceMfgDescTag

public static final int icSigDeviceMfgDescTag
ICC Profile Tag Signature: 'dmnd'.

See Also:
Constant Field Values

icSigDeviceModelDescTag

public static final int icSigDeviceModelDescTag
ICC Profile Tag Signature: 'dmdd'.

See Also:
Constant Field Values

icSigDeviceSettingsTag

public static final int icSigDeviceSettingsTag
ICC Profile Tag Signature: 'devs'.

See Also:
Constant Field Values

icSigGamutTag

public static final int icSigGamutTag
ICC Profile Tag Signature: 'gamt'.

See Also:
Constant Field Values

icSigGrayTRCTag

public static final int icSigGrayTRCTag
ICC Profile Tag Signature: 'kTRC'.

See Also:
Constant Field Values

icSigGreenColorantTag

public static final int icSigGreenColorantTag
ICC Profile Tag Signature: 'gXYZ'.

See Also:
Constant Field Values

icSigGreenTRCTag

public static final int icSigGreenTRCTag
ICC Profile Tag Signature: 'gTRC'.

See Also:
Constant Field Values

icSigLuminanceTag

public static final int icSigLuminanceTag
ICC Profile Tag Signature: 'lumi'.

See Also:
Constant Field Values

icSigMeasurementTag

public static final int icSigMeasurementTag
ICC Profile Tag Signature: 'meas'.

See Also:
Constant Field Values

icSigMediaBlackPointTag

public static final int icSigMediaBlackPointTag
ICC Profile Tag Signature: 'bkpt'.

See Also:
Constant Field Values

icSigMediaWhitePointTag

public static final int icSigMediaWhitePointTag
ICC Profile Tag Signature: 'wtpt'.

See Also:
Constant Field Values

icSigNamedColor2Tag

public static final int icSigNamedColor2Tag
ICC Profile Tag Signature: 'ncl2'.

See Also:
Constant Field Values

icSigOutputResponseTag

public static final int icSigOutputResponseTag
ICC Profile Tag Signature: 'resp'.

See Also:
Constant Field Values

icSigPreview0Tag

public static final int icSigPreview0Tag
ICC Profile Tag Signature: 'pre0'.

See Also:
Constant Field Values

icSigPreview1Tag

public static final int icSigPreview1Tag
ICC Profile Tag Signature: 'pre1'.

See Also:
Constant Field Values

icSigPreview2Tag

public static final int icSigPreview2Tag
ICC Profile Tag Signature: 'pre2'.

See Also:
Constant Field Values

icSigProfileDescriptionTag

public static final int icSigProfileDescriptionTag
ICC Profile Tag Signature: 'desc'.

See Also:
Constant Field Values

icSigProfileSequenceDescTag

public static final int icSigProfileSequenceDescTag
ICC Profile Tag Signature: 'pseq'.

See Also:
Constant Field Values

icSigPs2CRD0Tag

public static final int icSigPs2CRD0Tag
ICC Profile Tag Signature: 'psd0'.

See Also:
Constant Field Values

icSigPs2CRD1Tag

public static final int icSigPs2CRD1Tag
ICC Profile Tag Signature: 'psd1'.

See Also:
Constant Field Values

icSigPs2CRD2Tag

public static final int icSigPs2CRD2Tag
ICC Profile Tag Signature: 'psd2'.

See Also:
Constant Field Values

icSigPs2CRD3Tag

public static final int icSigPs2CRD3Tag
ICC Profile Tag Signature: 'psd3'.

See Also:
Constant Field Values

icSigPs2CSATag

public static final int icSigPs2CSATag
ICC Profile Tag Signature: 'ps2s'.

See Also:
Constant Field Values

icSigPs2RenderingIntentTag

public static final int icSigPs2RenderingIntentTag
ICC Profile Tag Signature: 'ps2i'.

See Also:
Constant Field Values

icSigRedColorantTag

public static final int icSigRedColorantTag
ICC Profile Tag Signature: 'rXYZ'.

See Also:
Constant Field Values

icSigRedTRCTag

public static final int icSigRedTRCTag
ICC Profile Tag Signature: 'rTRC'.

See Also:
Constant Field Values

icSigScreeningDescTag

public static final int icSigScreeningDescTag
ICC Profile Tag Signature: 'scrd'.

See Also:
Constant Field Values

icSigScreeningTag

public static final int icSigScreeningTag
ICC Profile Tag Signature: 'scrn'.

See Also:
Constant Field Values

icSigTechnologyTag

public static final int icSigTechnologyTag
ICC Profile Tag Signature: 'tech'.

See Also:
Constant Field Values

icSigUcrBgTag

public static final int icSigUcrBgTag
ICC Profile Tag Signature: 'bfd '.

See Also:
Constant Field Values

icSigViewingCondDescTag

public static final int icSigViewingCondDescTag
ICC Profile Tag Signature: 'vued'.

See Also:
Constant Field Values

icSigViewingConditionsTag

public static final int icSigViewingConditionsTag
ICC Profile Tag Signature: 'view'.

See Also:
Constant Field Values

icSigChromaticityTag

public static final int icSigChromaticityTag
ICC Profile Tag Signature: 'chrm'.

See Also:
Constant Field Values

icHdrSize

public static final int icHdrSize
ICC Profile Header Location: profile size in bytes.

See Also:
Constant Field Values

icHdrCmmId

public static final int icHdrCmmId
ICC Profile Header Location: CMM for this profile.

See Also:
Constant Field Values

icHdrVersion

public static final int icHdrVersion
ICC Profile Header Location: format version number.

See Also:
Constant Field Values

icHdrDeviceClass

public static final int icHdrDeviceClass
ICC Profile Header Location: type of profile.

See Also:
Constant Field Values

icHdrColorSpace

public static final int icHdrColorSpace
ICC Profile Header Location: color space of data.

See Also:
Constant Field Values

icHdrPcs

public static final int icHdrPcs
ICC Profile Header Location: PCS - XYZ or Lab only.

See Also:
Constant Field Values

icHdrDate

public static final int icHdrDate
ICC Profile Header Location: date profile was created.

See Also:
Constant Field Values

icHdrMagic

public static final int icHdrMagic
ICC Profile Header Location: icMagicNumber.

See Also:
Constant Field Values

icHdrPlatform

public static final int icHdrPlatform
ICC Profile Header Location: primary platform.

See Also:
Constant Field Values

icHdrFlags

public static final int icHdrFlags
ICC Profile Header Location: various bit settings.

See Also:
Constant Field Values

icHdrManufacturer

public static final int icHdrManufacturer
ICC Profile Header Location: device manufacturer.

See Also:
Constant Field Values

icHdrModel

public static final int icHdrModel
ICC Profile Header Location: device model number.

See Also:
Constant Field Values

icHdrAttributes

public static final int icHdrAttributes
ICC Profile Header Location: device attributes.

See Also:
Constant Field Values

icHdrRenderingIntent

public static final int icHdrRenderingIntent
ICC Profile Header Location: rendering intent.

See Also:
Constant Field Values

icHdrIlluminant

public static final int icHdrIlluminant
ICC Profile Header Location: profile illuminant.

See Also:
Constant Field Values

icHdrCreator

public static final int icHdrCreator
ICC Profile Header Location: profile creator.

See Also:
Constant Field Values

icTagType

public static final int icTagType
ICC Profile Constant: tag type signaturE.

See Also:
Constant Field Values

icTagReserved

public static final int icTagReserved
ICC Profile Constant: reserved.

See Also:
Constant Field Values

icCurveCount

public static final int icCurveCount
ICC Profile Constant: curveType count.

See Also:
Constant Field Values

icCurveData

public static final int icCurveData
ICC Profile Constant: curveType data.

See Also:
Constant Field Values

icXYZNumberX

public static final int icXYZNumberX
ICC Profile Constant: XYZNumber X.

See Also:
Constant Field Values

iccProfileSerializedDataVersion

private int iccProfileSerializedDataVersion
Version of the format of additional serialized data in the stream. Version 1 corresponds to Java 2 Platform, v1.3.

Since:
1.3

resolvedDeserializedProfile

private transient ICC_Profile resolvedDeserializedProfile
Constructor Detail

ICC_Profile

ICC_Profile(long ID)
Constructs an ICC_Profile object with a given ID.


ICC_Profile

ICC_Profile(sun.awt.color.ProfileDeferralInfo pdi)
Constructs an ICC_Profile object whose loading will be deferred. The ID will be 0 until the profile is loaded.

Method Detail

finalize

protected void finalize()
Frees the resources associated with an ICC_Profile object.

Overrides:
finalize in class Object

getInstance

public static ICC_Profile getInstance(byte[] data)
Constructs an ICC_Profile object corresponding to the data in a byte array. Throws an IllegalArgumentException if the data does not correspond to a valid ICC Profile.

Parameters:
data - the specified ICC Profile data
Returns:
an ICC_Profile object corresponding to the data in the specified data array.

getInstance

public static ICC_Profile getInstance(int cspace)
Constructs an ICC_Profile corresponding to one of the specific color spaces defined by the ColorSpace class (for example CS_sRGB). Throws an IllegalArgumentException if cspace is not one of the defined color spaces.

Parameters:
cspace - the type of color space to create a profile for. The specified type is one of the color space constants defined in the ColorSpace class.
Returns:
an ICC_Profile object corresponding to the specified ColorSpace type.
Throws:
IllegalArgumentException - If cspace is not one of the predefined color space types.

getInstance

public static ICC_Profile getInstance(String fileName)
                               throws IOException
Constructs an ICC_Profile corresponding to the data in a file. fileName may be an absolute or a relative file specification. Relative file names are looked for in several places: first, relative to any directories specified by the java.iccprofile.path property; second, relative to any directories specified by the java.class.path property; finally, in a directory used to store profiles always available, such as the profile for sRGB. Built-in profiles use .pf as the file name extension for profiles, e.g. sRGB.pf. This method throws an IOException if the specified file cannot be opened or if an I/O error occurs while reading the file. It throws an IllegalArgumentException if the file does not contain valid ICC Profile data.

Parameters:
fileName - The file that contains the data for the profile.
Returns:
an ICC_Profile object corresponding to the data in the specified file.
Throws:
IOException - If the specified file cannot be opened or an I/O error occurs while reading the file.
IllegalArgumentException - If the file does not contain valid ICC Profile data.

getInstance

public static ICC_Profile getInstance(InputStream s)
                               throws IOException
Constructs an ICC_Profile corresponding to the data in an InputStream. This method throws an IllegalArgumentException if the stream does not contain valid ICC Profile data. It throws an IOException if an I/O error occurs while reading the stream.

Parameters:
s - The input stream from which to read the profile data.
Returns:
an ICC_Profile object corresponding to the data in the specified InputStream.
Throws:
IOException - If an I/O error occurs while reading the stream.
IllegalArgumentException - If the stream does not contain valid ICC Profile data.

getProfileDataFromStream

static byte[] getProfileDataFromStream(InputStream s)
                                throws IOException
Throws:
IOException

getDeferredInstance

static ICC_Profile getDeferredInstance(sun.awt.color.ProfileDeferralInfo pdi)
                                throws IOException
Constructs an ICC_Profile for which the actual loading of the profile data from a file and the initialization of the CMM should be deferred as long as possible.

Throws:
IOException

activateDeferredProfile

void activateDeferredProfile()

getMajorVersion

public int getMajorVersion()
Returns profile major version.

Returns:
The major version of the profile.

getMinorVersion

public int getMinorVersion()
Returns profile minor version.

Returns:
The minor version of the profile.

getProfileClass

public int getProfileClass()
Returns the profile class.

Returns:
One of the predefined profile class constants.

getColorSpaceType

public int getColorSpaceType()
Returns the color space type. Returns one of the color space type constants defined by the ColorSpace class. This is the "input" color space of the profile. 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:
One of the color space type constants defined in the ColorSpace class.

getColorSpaceType

static int getColorSpaceType(long profileID)

getPCSType

public int getPCSType()
Returns the color space type of the Profile Connection Space (PCS). Returns one of the color space type constants defined by the ColorSpace class. This is the "output" color space of the profile. For an input, display, or output profile useful for tagging colors or images, this will be either TYPE_XYZ or TYPE_Lab and should be interpreted as the corresponding specific color space defined in the ICC specification. For a device link profile, this could be any of the color space type constants.

Returns:
One of the color space type constants defined in the ColorSpace class.

getPCSType

static int getPCSType(long profileID)

write

public void write(String fileName)
           throws IOException
Write this ICC_Profile to a file.

Parameters:
fileName - The file to write the profile data to.
Throws:
IOException - If the file cannot be opened for writing or an I/O error occurs while writing to the file.

write

public void write(OutputStream s)
           throws IOException
Write this ICC_Profile to an OutputStream.

Parameters:
s - The stream to write the profile data to.
Throws:
IOException - If an I/O error occurs while writing to the stream.

getData

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

Returns:
A byte array that contains the profile data.
See Also:
setData(int, byte[])

getData

public byte[] getData(int tagSignature)
Returns a particular tagged data element from the profile as a byte array. Elements are identified by signatures as defined in the ICC specification. The signature icSigHead can be used to get the header. This method is useful for advanced applets or applications which need to access profile data directly.

Parameters:
tagSignature - The ICC tag signature for the data element you want to get.
Returns:
A byte array that contains the tagged data element. Returns null if the specified tag doesn't exist.
See Also:
setData(int, byte[])

getData

static byte[] getData(long profileID,
                      int tagSignature)

setData

public void setData(int tagSignature,
                    byte[] tagData)
Sets a particular tagged data element in the profile from a byte array. This method is useful for advanced applets or applications which need to access profile data directly.

Parameters:
tagSignature - The ICC tag signature for the data element you want to set.
tagData - the data to set for the specified tag signature
See Also:
getData()

setRenderingIntent

void setRenderingIntent(int renderingIntent)
Sets the rendering intent of the profile. This is used to select the proper transform from a profile that has multiple transforms.


getRenderingIntent

int getRenderingIntent()
Returns the rendering intent of the profile. This is used to select the proper transform from a profile that has multiple transforms. It is typically set in a source profile to select a transform from an output profile.


getNumComponents

public int getNumComponents()
Returns the number of color components in the "input" color space of this profile. For example if the color space type of this profile is TYPE_RGB, then this method will return 3.

Returns:
The number of color components in the profile's input color space.
Throws:
ProfileDataException - if color space is in the profile is invalid

getMediaWhitePoint

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


getXYZTag

float[] getXYZTag(int theTagSignature)
Returns a float array of length 3 containing the X, Y, and Z components encoded in an XYZType tag.


getGamma

float getGamma(int theTagSignature)
Returns a gamma value representing a tone reproduction curve (TRC). If the profile represents the TRC 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(). theTagSignature should be one of icSigGrayTRCTag, icSigRedTRCTag, icSigGreenTRCTag, or icSigBlueTRCTag.

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

getTRC

short[] getTRC(int theTagSignature)
Returns the TRC as an array of shorts. If the profile has specified the 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 Gray 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. theTagSignature should be one of icSigGrayTRCTag, icSigRedTRCTag, icSigGreenTRCTag, or icSigBlueTRCTag.

Returns:
a short array representing the TRC.
Throws:
ProfileDataException - if the profile does not specify the TRC as a table.

iccCStoJCS

static int iccCStoJCS(int theColorSpaceSig)

intFromBigEndian

static int intFromBigEndian(byte[] array,
                            int index)

intToBigEndian

static void intToBigEndian(int value,
                           byte[] array,
                           int index)

shortFromBigEndian

static short shortFromBigEndian(byte[] array,
                                int index)

shortToBigEndian

static void shortToBigEndian(short value,
                             byte[] array,
                             int index)

openProfile

private static FileInputStream openProfile(String fileName)

privilegedOpenProfile

private static FileInputStream privilegedOpenProfile(String fileName)

writeObject

private void writeObject(ObjectOutputStream s)
                  throws IOException
Writes default serializable fields to the stream. Writes a string and an array of bytes to the stream as additional data.

Parameters:
s - stream used for serialization.
Throws:
IOException - thrown by ObjectInputStream.

readObject

private void readObject(ObjectInputStream s)
                 throws IOException,
                        ClassNotFoundException
Reads default serializable fields from the stream. Reads from the stream a string and an array of bytes as additional data.

Parameters:
s - stream used for deserialization.
Throws:
IOException - thrown by ObjectInputStream.
ClassNotFoundException - thrown by ObjectInputStream.
See Also:
readResolve(), getInstance(int), getInstance(byte[])

readResolve

protected Object readResolve()
                      throws ObjectStreamException
Resolves instances being deserialized into instances registered with CMM.

Returns:
ICC_Profile object for profile registered with CMM.
Throws:
ObjectStreamException - never thrown, but mandated by the serialization spec.