On Fri, 24 Jan 2025 01:03:35 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>> Harshitha Onkar has updated the pull request incrementally with one >> additional commit since the last revision: >> >> Runtime Exception added > > src/java.desktop/share/classes/java/awt/color/ICC_Profile.java line 1155: > >> 1153: throw new IllegalArgumentException("Invalid header data"); >> 1154: } >> 1155: getProfileClass(data); > > Can any of these fields have custom values (not covered by java constants > inside iccCStoJCS) that can still be used for color transformation? Using custom values of color space to create a new color transform (For instance: cmsSigMCH1Data: 0x4D434831 which is specified in LCMS API but not in ICC Spec) results in ProfileDataException as below. java.awt.color.ProfileDataException: invalid ICC color space at java.desktop/java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:1217) at java.desktop/sun.java2d.cmm.lcms.LCMSTransform.<init>(LCMSTransform.java:85) at java.desktop/sun.java2d.cmm.lcms.LCMS.createTransform(LCMS.java:132) at java.desktop/java.awt.color.ICC_ColorSpace.toRGB(ICC_ColorSpace.java:212) To summarize: - Profile/Device class - constants match (in ICC Spec doc and LCMS API doc) - Color Space - constants differ - Rendering Intent - constants differ - PCS - constants differ. This is dependent on type of device class and takes color space values. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23044#discussion_r1929879100