On Mon, 13 Jan 2025 21:11:11 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> src/java.desktop/share/classes/java/awt/color/ICC_Profile.java line 1176:
>> 
>>> 1174:                 return true;
>>> 1175:             }
>>> 1176:             default -> throw new IllegalArgumentException("Unknown 
>>> Rendering Intent");
>> 
>> how it is handled by the lcms library? don't we need to ignore unknown 
>> intents(and other parameters) and lets lcms decide what to do?
>
>> @mrserb Non-header data are updated using cooked approach (and validated by 
>> LCMS) whereas header data are updated using raw LCMS APIs hence require 
>> additional validation before setData() is called (On native side it is 
>> handled here: setTagDataNative() in 
>> [LCMS.c](https://github.com/openjdk/jdk/blob/63eb4853f6782f350f67b6bcf25d83bc4480be71/src/java.desktop/share/native/liblcms/LCMS.c#L445)).
>> 
> Then probably we can use approach similar to 8282577: 
> https://github.com/openjdk/jdk/commit/f66070b00d4311c6e3a6fbf38956fa2d5da5fada
>  and try to rely on lcms for validation.

> The ICC spec. defines only these 4 intents, so I don't see a problem here.

our own profiles do not strictly follow these specification, so if lcms ignores 
that we can do the same, especially since we fallback to the "Perceptual 
intent" 
https://github.com/openjdk/jdk/blob/13a1775718f329b02cdeb82f9d3f7d878ac5e771/src/java.desktop/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java#L75

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/23044#discussion_r1913814116

Reply via email to