Open haraldk opened 5 years ago
JDK seems to have a lot of nasty issues with color profiles.
@haraldk Are you aware of any use case where this can cause a problem? Like reading an image?
@sghpjuikit I’m not sure if I understand what you are asking here...
Yes, the issue I described causes problems whenever comparing two ColorSpace or ICC_Profile instances is needed.
The linked issue, #398, shows one such case.
It shouldn’t cause much problems for reading images in general, but it may waste some memory by keeping multiple ICC profiles in memory unnecessary.
Best regards,
— Harald K
I haven't noticed the linked issue, I see. You answered my question sufficiently.
The following no longer works:
The above code works for me in Java 8 (1.8.0_x).
But I tested again, using a different Java version (OpenJDK 11.0.1+x). There seems to be a JDK issue, where something has changed in the comparison of
ImageTypeSpecifier
s, so that two equal (but not the same) specifiers are no longer considered equal... That's unfortunate.For now, you can still get the same effect, by using the following code:
This works for me, both Java 8 and 11.
The problem seems to be that embedded color profiles that are equal to sRGB no longer compares correctly in
ColorSpaces
class, thus multiple sRGB profiles are created.Originally posted by @haraldk in https://github.com/haraldk/TwelveMonkeys/issues/398#issuecomment-485865888