On Tue, 14 Jan 2025 20:45:14 GMT, Harshitha Onkar <[email protected]> wrote:

>>> 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
>>>the new code will be called when loading raw data for a profile, so if that 
>>>profile was previously accepted and used some default values, the new code 
>>>will reject it.
>> 
>> @prrace @mrserb 
>> 
>> There is difference in what is stated as accepted values for Rendering 
>> Intent in **[ICC Spec 
>> Doc](https://www.color.org/specification/ICC.1-2022-05.pdf) vs [LittleCMS 
>> API doc](https://www.littlecms.com/LittleCMS2.16%20API.pdf)**
>> 
>> **ICC Spec Doc** states Rendering Intent can take one of the following 
>> values [Pg#23]:
>> 
>> <img width="353" alt="image" 
>> src="https://github.com/user-attachments/assets/cdd62ca5-0cd0-4c2f-afa6-1777f20c643c";
>>  />
>> 
>> ----
>> **The API doc** states it can take ICC Intent as well as Non-ICC Intent 
>> values [Pg#88,90]
>> 
>> 
>> void cmsSetHeaderRenderingIntent(cmsHPROFILE hProfile,
>> cmsUInt32Number RenderingIntent);
>> 
>> Sets the profile header rendering intent. See the discussion above.
>> Parameters:
>> hProfile: Handle to a profile object
>> RenderingIntent: A cmsUInt32Number holding the intent code, as described in
>> Intents section
>> 
>> 
>> <img width="485" alt="image" 
>> src="https://github.com/user-attachments/assets/ffe5dae6-25ae-48b5-8d31-68091635e610";
>>  />
>
>> 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
> 
> Is it for the above reason (it can take ICC Intent as well as Non ICC Intent) 
> that LCMSTransform does NOT validate the value of rendering intent ?

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

I think only when user sets "Any" rendering intent we fallback to "Perceptual" 
intent.
@honkar-jdk What happens when we set some random intent value?

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

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

Reply via email to