The [next PR](https://github.com/openjdk/jdk/pull/23044) introduces several new
methods to the ICC_Profile class:
- getProfileClass(byte[])
- getColorSpaceType(byte[])
- getPCSType(byte[])
- checkRenderingIntent(byte[])
These new methods extract data directly from the provided byte array rather
than relying on the profile instance. The first three methods essentially
duplicate the existing ones (getProfileClass(), getColorSpaceType(),
getPCSType()).
It is possible to update implementation:
- The existing methods getColorSpaceType() and getPCSType() could delegate to
the new getColorSpaceType(byte[]) and getPCSType(byte[]) methods.
- The checkRenderingIntent(byte[]) method could be updated to report the actual
invalid intent value when an error occurs
Tests:
- Old ValidateICCHeaderData test is update to verify the new output of the
checkRenderingIntent
- New RenderingIntentStressTest test is added to check the next part of the
icc_spec:
* ICC spec: only the least-significant 16 bits encode the rendering
* intent. The most significant 16 bits must be zero and can be
ignored.
* See https://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15.
@honkar-jdk please take a look.
Note: There is currently an inconsistency in the usage of `getData(icSigHead)`
vs `getData(cmmProfile(), icSigHead)` throughout the codebase. I plan to
address this separately.
-------------
Commit messages:
- Create RenderingIntentStressTest.java
- Update getColorSpaceType and getPCSType
- Update checkRenderingIntent
Changes: https://git.openjdk.org/jdk/pull/25519/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25519&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8358057
Stats: 141 lines in 3 files changed: 112 ins; 12 del; 17 mod
Patch: https://git.openjdk.org/jdk/pull/25519.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25519/head:pull/25519
PR: https://git.openjdk.org/jdk/pull/25519