java.lang.Object
java.awt.color.ICC_Profile
java.awt.color.ICC_ProfileRGB
- 所有已实现的接口:
-
Serializable
ICC_ProfileRGB
类是ICC_Profile
类的子类,表示符合以下条件的配置文件:配置文件的颜色空间类型为RGB,并且配置文件包括redColorantTag
、greenColorantTag
、blueColorantTag
、redTRCTag
、greenTRCTag
、blueTRCTag
、mediaWhitePointTag
标签。当满足上述条件时,ICC_Profile
类中的getInstance
方法将返回一个ICC_ProfileRGB
对象。三分量、基于矩阵的输入配置文件和RGB显示配置文件是这种类型的配置文件的示例。
这个类的优点在于它提供了颜色转换矩阵和查找表,Java或本机方法可以直接使用这些矩阵和查找表来优化某些情况下的颜色转换。
要从设备配置文件的颜色空间转换到CIEXYZ配置文件连接空间,首先通过对应的色调再现曲线(TRC)查找将每个设备颜色分量线性化。然后,使用从RGB颜色成分构造的3x3矩阵将得到的线性RGB成分转换为CIEXYZ PCS。
linearR = redTRC[deviceR] linearG = greenTRC[deviceG] linearB = blueTRC[deviceB] _ _ _ _ _ _ [ PCSX ] [ redColorantX greenColorantX blueColorantX ] [ linearR ] [ ] [ ] [ ] [ PCSY ] = [ redColorantY greenColorantY blueColorantY ] [ linearG ] [ ] [ ] [ ] [_ PCSZ _] [_ redColorantZ greenColorantZ blueColorantZ _] [_ linearB _]反向转换通过将PCS XYZ成分通过上述3x3矩阵的逆转换为线性RGB成分,然后通过TRC的逆转换为设备RGB。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
用于获取蓝色分量的伽马值或TRC。static final int
用于获取绿色分量的伽马值或TRC。static final int
用于获取红色分量的伽马值或TRC。Fields declared in class java.awt.color.ICC_Profile
CLASS_ABSTRACT, CLASS_COLORSPACECONVERSION, CLASS_DEVICELINK, CLASS_DISPLAY, CLASS_INPUT, CLASS_NAMEDCOLOR, CLASS_OUTPUT, icAbsoluteColorimetric, icCurveCount, icCurveData, icHdrAttributes, icHdrCmmId, icHdrColorSpace, icHdrCreator, icHdrDate, icHdrDeviceClass, icHdrFlags, icHdrIlluminant, icHdrMagic, icHdrManufacturer, icHdrModel, icHdrPcs, icHdrPlatform, icHdrProfileID, icHdrRenderingIntent, icHdrSize, icHdrVersion, icICCAbsoluteColorimetric, icMediaRelativeColorimetric, icPerceptual, icRelativeColorimetric, icSaturation, icSigAbstractClass, icSigAToB0Tag, icSigAToB1Tag, icSigAToB2Tag, icSigBlueColorantTag, icSigBlueMatrixColumnTag, icSigBlueTRCTag, icSigBToA0Tag, icSigBToA1Tag, icSigBToA2Tag, icSigCalibrationDateTimeTag, icSigCharTargetTag, icSigChromaticAdaptationTag, icSigChromaticityTag, icSigCmyData, icSigCmykData, icSigColorantOrderTag, icSigColorantTableTag, icSigColorSpaceClass, icSigCopyrightTag, icSigCrdInfoTag, icSigDeviceMfgDescTag, icSigDeviceModelDescTag, icSigDeviceSettingsTag, icSigDisplayClass, icSigGamutTag, icSigGrayData, icSigGrayTRCTag, icSigGreenColorantTag, icSigGreenMatrixColumnTag, icSigGreenTRCTag, icSigHead, icSigHlsData, icSigHsvData, icSigInputClass, icSigLabData, icSigLinkClass, icSigLuminanceTag, icSigLuvData, icSigMeasurementTag, icSigMediaBlackPointTag, icSigMediaWhitePointTag, icSigNamedColor2Tag, icSigNamedColorClass, icSigOutputClass, icSigOutputResponseTag, icSigPreview0Tag, icSigPreview1Tag, icSigPreview2Tag, icSigProfileDescriptionTag, icSigProfileSequenceDescTag, icSigPs2CRD0Tag, icSigPs2CRD1Tag, icSigPs2CRD2Tag, icSigPs2CRD3Tag, icSigPs2CSATag, icSigPs2RenderingIntentTag, icSigRedColorantTag, icSigRedMatrixColumnTag, icSigRedTRCTag, icSigRgbData, icSigScreeningDescTag, icSigScreeningTag, icSigSpace2CLR, icSigSpace3CLR, icSigSpace4CLR, icSigSpace5CLR, icSigSpace6CLR, icSigSpace7CLR, icSigSpace8CLR, icSigSpace9CLR, icSigSpaceACLR, icSigSpaceBCLR, icSigSpaceCCLR, icSigSpaceDCLR, icSigSpaceECLR, icSigSpaceFCLR, icSigTechnologyTag, icSigUcrBgTag, icSigViewingCondDescTag, icSigViewingConditionsTag, icSigXYZData, icSigYCbCrData, icSigYxyData, icTagReserved, icTagType, icXYZNumberX
-
Method Summary
Methods declared in class java.awt.color.ICC_Profile
getColorSpaceType, getData, getData, getInstance, getInstance, getInstance, getInstance, getMajorVersion, getMinorVersion, getNumComponents, getPCSType, getProfileClass, readResolve, setData, write, write
-
Field Details
-
REDCOMPONENT
public static final int REDCOMPONENT用于获取红色分量的伽马值或TRC。- 参见:
-
GREENCOMPONENT
public static final int GREENCOMPONENT用于获取绿色分量的伽马值或TRC。- 参见:
-
BLUECOMPONENT
public static final int BLUECOMPONENT用于获取蓝色分量的伽马值或TRC。- 参见:
-
-
Method Details
-
getMediaWhitePoint
public float[] getMediaWhitePoint()返回包含配置文件的mediaWhitePointTag
组件的数组。- 返回:
-
包含配置文件的
mediaWhitePointTag
的x、y和z组件的3元素float
数组
-
getMatrix
public float[][] getMatrix()返回由配置文件的redColorantTag
、greenColorantTag
和blueColorantTag
的X、Y和Z成分构成的3x3float
矩阵。此矩阵可用于配置文件的正向转换中的颜色转换--从配置文件颜色空间到CIEXYZ PCS。
- 返回:
-
包含配置文件的
redColorantTag
、greenColorantTag
和blueColorantTag
的x、y和z组件的3x3float
数组
-
getGamma
public float getGamma(int component) 返回表示特定分量的色调再现曲线(TRC)的伽马值。组件参数必须是REDCOMPONENT
、GREENCOMPONENT
或BLUECOMPONENT
之一。如果配置文件将相应分量的TRC表示为表而不是单个伽马值,则会引发异常。在这种情况下,实际表可以通过
getTRC(int)
方法获取。使用伽马值时,线性分量(R、G或B)计算如下:gamma linearComponent = deviceComponent
- 参数:
-
component
- 表示要检索其TRC的分量的ICC_ProfileRGB
常量 - 返回:
- 作为浮点数的伽马值
- 抛出:
-
IllegalArgumentException
- 如果分量不是REDCOMPONENT
、GREENCOMPONENT
或BLUECOMPONENT
-
ProfileDataException
- 如果配置文件未将相应TRC指定为单个伽马值
-
getTRC
public short[] getTRC(int component) 返回特定分量的TRC作为数组。分量必须是REDCOMPONENT
、GREENCOMPONENT
或BLUECOMPONENT
。否则,返回的数组表示查找表,其中输入分量值在概念上处于范围[0.0, 1.0]。值0.0映射到数组索引0,值1.0映射到数组索引length-1
。可能使用插值来生成不完全映射到数组中的索引的输出值。输出值也线性映射到范围[0.0, 1.0]。值0.0由数组值0x0000表示,值1.0由0xFFFF表示。换句话说,这些值实际上是无符号的short
值,即使它们以short
数组的形式返回。如果配置文件已将相应TRC指定为线性(伽马=1.0)或作为简单伽马值,则此方法会引发异常。在这种情况下,应使用
getGamma(int)
方法获取伽马值。- 参数:
-
component
- 表示要检索其TRC的分量的ICC_ProfileRGB
常量:REDCOMPONENT
、GREENCOMPONENT
或BLUECOMPONENT
- 返回:
- 表示TRC的短数组
- 抛出:
-
IllegalArgumentException
- 如果分量不是REDCOMPONENT
、GREENCOMPONENT
或BLUECOMPONENT
-
ProfileDataException
- 如果配置文件未将相应TRC指定为表
-