ICC_Profile (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: java.awt.color, class: ICC_Profile
Keywords: java.awt.color.ICC_Profile class

# Class ICC_Profile

java.lang.Object
java.awt.color.ICC_Profile

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `ICC_ProfileGray, ICC_ProfileRGB`

public sealed class ICC_Profile extends Object implements Serializable permits ICC_ProfileGray, ICC_ProfileRGB
A representation of color profile data for device independent and device dependent color spaces based on the International Color Consortium Specification ICC.1:2001-12, File Format for Color Profiles, (see https://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

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CLASS_ABSTRACT`
  Profile class is abstract.
  `static final int`
  `CLASS_COLORSPACECONVERSION`
  Profile class is color space conversion.
  `static final int`
  `CLASS_DEVICELINK`
  Profile class is device link.
  `static final int`
  `CLASS_DISPLAY`
  Profile class is display.
  `static final int`
  `CLASS_INPUT`
  Profile class is input.
  `static final int`
  `CLASS_NAMEDCOLOR`
  Profile class is named color.
  `static final int`
  `CLASS_OUTPUT`
  Profile class is output.
  `static final int`
  `icAbsoluteColorimetric`
  ICC Profile Rendering Intent: AbsoluteColorimetric.
  `static final int`
  `icCurveCount`
  ICC Profile Constant: curveType count.
  `static final int`
  `icCurveData`
  ICC Profile Constant: curveType data.
  `static final int`
  `icHdrAttributes`
  ICC Profile Header Location: device attributes.
  `static final int`
  `icHdrCmmId`
  ICC Profile Header Location: CMM for this profile.
  `static final int`
  `icHdrColorSpace`
  ICC Profile Header Location: color space of data.
  `static final int`
  `icHdrCreator`
  ICC Profile Header Location: profile creator.
  `static final int`
  `icHdrDate`
  ICC Profile Header Location: date profile was created.
  `static final int`
  `icHdrDeviceClass`
  ICC Profile Header Location: type of profile.
  `static final int`
  `icHdrFlags`
  ICC Profile Header Location: various bit settings.
  `static final int`
  `icHdrIlluminant`
  ICC Profile Header Location: profile illuminant.
  `static final int`
  `icHdrMagic`
  ICC Profile Header Location: icMagicNumber.
  `static final int`
  `icHdrManufacturer`
  ICC Profile Header Location: device manufacturer.
  `static final int`
  `icHdrModel`
  ICC Profile Header Location: device model number.
  `static final int`
  `icHdrPcs`
  ICC Profile Header Location: PCS - XYZ or Lab only.
  `static final int`
  `icHdrPlatform`
  ICC Profile Header Location: primary platform.
  `static final int`
  `icHdrProfileID`
  ICC Profile Header Location: profile's ID.
  `static final int`
  `icHdrRenderingIntent`
  ICC Profile Header Location: rendering intent.
  `static final int`
  `icHdrSize`
  ICC Profile Header Location: profile size in bytes.
  `static final int`
  `icHdrVersion`
  ICC Profile Header Location: format version number.
  `static final int`
  `icICCAbsoluteColorimetric`
  ICC Profile Rendering Intent: ICC-AbsoluteColorimetric.
  `static final int`
  `icMediaRelativeColorimetric`
  ICC Profile Rendering Intent: Media-RelativeColorimetric.
  `static final int`
  `icPerceptual`
  ICC Profile Rendering Intent: Perceptual.
  `static final int`
  `icRelativeColorimetric`
  ICC Profile Rendering Intent: RelativeColorimetric.
  `static final int`
  `icSaturation`
  ICC Profile Rendering Intent: Saturation.
  `static final int`
  `icSigAbstractClass`
  ICC Profile Class Signature: 'abst'.
  `static final int`
  `icSigAToB0Tag`
  ICC Profile Tag Signature: 'A2B0'.
  `static final int`
  `icSigAToB1Tag`
  ICC Profile Tag Signature: 'A2B1'.
  `static final int`
  `icSigAToB2Tag`
  ICC Profile Tag Signature: 'A2B2'.
  `static final int`
  `icSigBlueColorantTag`
  ICC Profile Tag Signature: 'bXYZ'.
  `static final int`
  `icSigBlueMatrixColumnTag`
  ICC Profile Tag Signature: 'bXYZ'.
  `static final int`
  `icSigBlueTRCTag`
  ICC Profile Tag Signature: 'bTRC'.
  `static final int`
  `icSigBToA0Tag`
  ICC Profile Tag Signature: 'B2A0'.
  `static final int`
  `icSigBToA1Tag`
  ICC Profile Tag Signature: 'B2A1'.
  `static final int`
  `icSigBToA2Tag`
  ICC Profile Tag Signature: 'B2A2'.
  `static final int`
  `icSigCalibrationDateTimeTag`
  ICC Profile Tag Signature: 'calt'.
  `static final int`
  `icSigCharTargetTag`
  ICC Profile Tag Signature: 'targ'.
  `static final int`
  `icSigChromaticAdaptationTag`
  ICC Profile Tag Signature: 'chad'.
  `static final int`
  `icSigChromaticityTag`
  ICC Profile Tag Signature: 'chrm'.
  `static final int`
  `icSigCmyData`
  ICC Profile Color Space Type Signature: 'CMY '.
  `static final int`
  `icSigCmykData`
  ICC Profile Color Space Type Signature: 'CMYK'.
  `static final int`
  `icSigColorantOrderTag`
  ICC Profile Tag Signature: 'clro'.
  `static final int`
  `icSigColorantTableTag`
  ICC Profile Tag Signature: 'clrt'.
  `static final int`
  `icSigColorSpaceClass`
  ICC Profile Class Signature: 'spac'.
  `static final int`
  `icSigCopyrightTag`
  ICC Profile Tag Signature: 'cprt'.
  `static final int`
  `icSigCrdInfoTag`
  ICC Profile Tag Signature: 'crdi'.
  `static final int`
  `icSigDeviceMfgDescTag`
  ICC Profile Tag Signature: 'dmnd'.
  `static final int`
  `icSigDeviceModelDescTag`
  ICC Profile Tag Signature: 'dmdd'.
  `static final int`
  `icSigDeviceSettingsTag`
  ICC Profile Tag Signature: 'devs'.
  `static final int`
  `icSigDisplayClass`
  ICC Profile Class Signature: 'mntr'.
  `static final int`
  `icSigGamutTag`
  ICC Profile Tag Signature: 'gamt'.
  `static final int`
  `icSigGrayData`
  ICC Profile Color Space Type Signature: 'GRAY'.
  `static final int`
  `icSigGrayTRCTag`
  ICC Profile Tag Signature: 'kTRC'.
  `static final int`
  `icSigGreenColorantTag`
  ICC Profile Tag Signature: 'gXYZ'.
  `static final int`
  `icSigGreenMatrixColumnTag`
  ICC Profile Tag Signature: 'gXYZ'.
  `static final int`
  `icSigGreenTRCTag`
  ICC Profile Tag Signature: 'gTRC'.
  `static final int`
  `icSigHead`
  ICC Profile Tag Signature: 'head' - special.
  `static final int`
  `icSigHlsData`
  ICC Profile Color Space Type Signature: 'HLS'.
  `static final int`
  `icSigHsvData`
  ICC Profile Color Space Type Signature: 'HSV'.
  `static final int`
  `icSigInputClass`
  ICC Profile Class Signature: 'scnr'.
  `static final int`
  `icSigLabData`
  ICC Profile Color Space Type Signature: 'Lab '.
  `static final int`
  `icSigLinkClass`
  ICC Profile Class Signature: 'link'.
  `static final int`
  `icSigLuminanceTag`
  ICC Profile Tag Signature: 'lumi'.
  `static final int`
  `icSigLuvData`
  ICC Profile Color Space Type Signature: 'Luv '.
  `static final int`
  `icSigMeasurementTag`
  ICC Profile Tag Signature: 'meas'.
  `static final int`
  `icSigMediaBlackPointTag`
  ICC Profile Tag Signature: 'bkpt'.
  `static final int`
  `icSigMediaWhitePointTag`
  ICC Profile Tag Signature: 'wtpt'.
  `static final int`
  `icSigNamedColor2Tag`
  ICC Profile Tag Signature: 'ncl2'.
  `static final int`
  `icSigNamedColorClass`
  ICC Profile Class Signature: 'nmcl'.
  `static final int`
  `icSigOutputClass`
  ICC Profile Class Signature: 'prtr'.
  `static final int`
  `icSigOutputResponseTag`
  ICC Profile Tag Signature: 'resp'.
  `static final int`
  `icSigPreview0Tag`
  ICC Profile Tag Signature: 'pre0'.
  `static final int`
  `icSigPreview1Tag`
  ICC Profile Tag Signature: 'pre1'.
  `static final int`
  `icSigPreview2Tag`
  ICC Profile Tag Signature: 'pre2'.
  `static final int`
  `icSigProfileDescriptionTag`
  ICC Profile Tag Signature: 'desc'.
  `static final int`
  `icSigProfileSequenceDescTag`
  ICC Profile Tag Signature: 'pseq'.
  `static final int`
  `icSigPs2CRD0Tag`
  ICC Profile Tag Signature: 'psd0'.
  `static final int`
  `icSigPs2CRD1Tag`
  ICC Profile Tag Signature: 'psd1'.
  `static final int`
  `icSigPs2CRD2Tag`
  ICC Profile Tag Signature: 'psd2'.
  `static final int`
  `icSigPs2CRD3Tag`
  ICC Profile Tag Signature: 'psd3'.
  `static final int`
  `icSigPs2CSATag`
  ICC Profile Tag Signature: 'ps2s'.
  `static final int`
  `icSigPs2RenderingIntentTag`
  ICC Profile Tag Signature: 'ps2i'.
  `static final int`
  `icSigRedColorantTag`
  ICC Profile Tag Signature: 'rXYZ'.
  `static final int`
  `icSigRedMatrixColumnTag`
  ICC Profile Tag Signature: 'rXYZ'.
  `static final int`
  `icSigRedTRCTag`
  ICC Profile Tag Signature: 'rTRC'.
  `static final int`
  `icSigRgbData`
  ICC Profile Color Space Type Signature: 'RGB '.
  `static final int`
  `icSigScreeningDescTag`
  ICC Profile Tag Signature: 'scrd'.
  `static final int`
  `icSigScreeningTag`
  ICC Profile Tag Signature: 'scrn'.
  `static final int`
  `icSigSpace2CLR`
  ICC Profile Color Space Type Signature: '2CLR'.
  `static final int`
  `icSigSpace3CLR`
  ICC Profile Color Space Type Signature: '3CLR'.
  `static final int`
  `icSigSpace4CLR`
  ICC Profile Color Space Type Signature: '4CLR'.
  `static final int`
  `icSigSpace5CLR`
  ICC Profile Color Space Type Signature: '5CLR'.
  `static final int`
  `icSigSpace6CLR`
  ICC Profile Color Space Type Signature: '6CLR'.
  `static final int`
  `icSigSpace7CLR`
  ICC Profile Color Space Type Signature: '7CLR'.
  `static final int`
  `icSigSpace8CLR`
  ICC Profile Color Space Type Signature: '8CLR'.
  `static final int`
  `icSigSpace9CLR`
  ICC Profile Color Space Type Signature: '9CLR'.
  `static final int`
  `icSigSpaceACLR`
  ICC Profile Color Space Type Signature: 'ACLR'.
  `static final int`
  `icSigSpaceBCLR`
  ICC Profile Color Space Type Signature: 'BCLR'.
  `static final int`
  `icSigSpaceCCLR`
  ICC Profile Color Space Type Signature: 'CCLR'.
  `static final int`
  `icSigSpaceDCLR`
  ICC Profile Color Space Type Signature: 'DCLR'.
  `static final int`
  `icSigSpaceECLR`
  ICC Profile Color Space Type Signature: 'ECLR'.
  `static final int`
  `icSigSpaceFCLR`
  ICC Profile Color Space Type Signature: 'FCLR'.
  `static final int`
  `icSigTechnologyTag`
  ICC Profile Tag Signature: 'tech'.
  `static final int`
  `icSigUcrBgTag`
  ICC Profile Tag Signature: 'bfd '.
  `static final int`
  `icSigViewingCondDescTag`
  ICC Profile Tag Signature: 'vued'.
  `static final int`
  `icSigViewingConditionsTag`
  ICC Profile Tag Signature: 'view'.
  `static final int`
  `icSigXYZData`
  ICC Profile Color Space Type Signature: 'XYZ '.
  `static final int`
  `icSigYCbCrData`
  ICC Profile Color Space Type Signature: 'YCbr'.
  `static final int`
  `icSigYxyData`
  ICC Profile Color Space Type Signature: 'Yxy '.
  `static final int`
  `icTagReserved`
  ICC Profile Constant: reserved.
  `static final int`
  `icTagType`
  ICC Profile Constant: tag type signature.
  `static final int`
  `icXYZNumberX`
  ICC Profile Constant: XYZNumber X.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getColorSpaceType()`
  Returns the color space type.
  `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.
  `static ICC_Profile`
  `getInstance(byte[] data)`
  Constructs an `ICC_Profile` object corresponding to the data in a byte array.
  `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(InputStream s)`
  Constructs an `ICC_Profile` corresponding to the data in an `InputStream`.
  `static ICC_Profile`
  `getInstance(String fileName)`
  Constructs an `ICC_Profile` corresponding to the data in a file.
  `int`
  `getMajorVersion()`
  Returns profile major version.
  `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).
  `int`
  `getProfileClass()`
  Returns the profile class.
  `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.
  `void`
  `write(OutputStream s)`
  Write this `ICC_Profile` to an `OutputStream`.
  `void`
  `write(String fileName)`
  Write this `ICC_Profile` to a file.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### 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

  - ### icMediaRelativeColorimetric

    public static final int icMediaRelativeColorimetric
    ICC Profile Rendering Intent: Media-RelativeColorimetric.
    Since:
      1.5
    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

  - ### icICCAbsoluteColorimetric

    public static final int icICCAbsoluteColorimetric
    ICC Profile Rendering Intent: ICC-AbsoluteColorimetric.
    Since:
      1.5
    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

  - ### icSigBlueMatrixColumnTag

    public static final int icSigBlueMatrixColumnTag
    ICC Profile Tag Signature: 'bXYZ'.
    Since:
      1.5
    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

  - ### icSigGreenMatrixColumnTag

    public static final int icSigGreenMatrixColumnTag
    ICC Profile Tag Signature: 'gXYZ'.
    Since:
      1.5
    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

  - ### icSigRedMatrixColumnTag

    public static final int icSigRedMatrixColumnTag
    ICC Profile Tag Signature: 'rXYZ'.
    Since:
      1.5
    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

  - ### icSigChromaticAdaptationTag

    public static final int icSigChromaticAdaptationTag
    ICC Profile Tag Signature: 'chad'.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### icSigColorantOrderTag

    public static final int icSigColorantOrderTag
    ICC Profile Tag Signature: 'clro'.
    Since:
      1.5
    See Also:
      - Constant Field Values

  - ### icSigColorantTableTag

    public static final int icSigColorantTableTag
    ICC Profile Tag Signature: 'clrt'.
    Since:
      1.5
    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

  - ### icHdrProfileID

    public static final int icHdrProfileID
    ICC Profile Header Location: profile's ID.
    Since:
      1.5
    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

- ## Method Details

  - ### getInstance

    public static ICC_Profile getInstance(byte[] data)
    Constructs an `ICC_Profile` object corresponding to the data in a byte array.
    Parameters:
      `data` - the specified ICC Profile data
    Returns:
      an `ICC_Profile` object corresponding to the data in the specified `data` array
    Throws:
      `IllegalArgumentException` - If the byte array does not contain valid ICC Profile data

  - ### 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`).
    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`.
    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
      `NullPointerException` - if `fileName` is `null`

  - ### getInstance

    public static ICC_Profile getInstance(InputStream s) throws IOException
    Constructs an `ICC_Profile` corresponding to the data in an `InputStream`.
    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
      `NullPointerException` - if `s` is `null`

  - ### 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

  - ### 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

  - ### 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
      `NullPointerException` - if `fileName` is `null`

  - ### 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
      `NullPointerException` - if `s` is `null`

  - ### 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 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[])`

  - ### setData

    public void setData(int tagSignature, byte[] tagData)
    Sets a particular tagged data element in the profile from a byte array. The array should contain data in a format, corresponded to the `tagSignature` as defined in the ICC specification, section 10. This method is useful for advanced applications which need to access profile data directly.

    Note: JDK built-in ICC Profiles cannot be updated using this method as it will result in `IllegalArgumentException`. JDK built-in profiles are those obtained by `ICC_Profile.getInstance(int colorSpaceID)` where `colorSpaceID` is one of the following: `ColorSpace.CS_sRGB`, `ColorSpace.CS_LINEAR_RGB`, `ColorSpace.CS_PYCC`, `ColorSpace.CS_GRAY` or `ColorSpace.CS_CIEXYZ`.

    Parameters:
      `tagSignature` - the ICC tag signature for the data element you want to set
      `tagData` - the data to set for the specified tag signature
    Throws:
      `IllegalArgumentException` - if `tagSignature` is not a signature as defined in the ICC specification.
      `IllegalArgumentException` - if the content of the `tagData` array can not be interpreted as valid tag data, corresponding to the `tagSignature`
      `IllegalArgumentException` - if this is a built-in profile for one of the pre-defined color spaces, that is those which can be obtained by calling `ICC_Profile.getInstance(int colorSpaceID)`
    See Also:
      - `getData()`
      - `ColorSpace`

  - ### 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

  - ### 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
    Since:
      1.3