The "default destination" for the ColorConverOp is used when the user passes "null" as the DST parameter. In this case, the "ColorConverOp.filter" creates the default image and uses ComponentColorModel: 8 bits per color component and optionally 8 bits for the alpha channel. For example for the ARGB source default destination will be RGBA format. Note that the RGBA format is not supported by BufferedImage directly, so the CUSTOM image type will be used.
Generic filtering of the CUSTOM image type is slow because we cannot pass that format directly to the CMM. But it would be good to support CUSTOM images that were created by the ColorConverOp. Support of the default destination w/o alpha was implemented as part of the https://bugs.openjdk.org/browse/JDK-8005530. Since then we added support of the alpha to CMM code https://bugs.openjdk.org/browse/JDK-8012229. Now we can improve the performance of the default destination if it has the alpha channel. The numbers for filtering opaque and transparent images to the null destination: <img width="705" alt="8300725" src="https://user-images.githubusercontent.com/14138494/213744370-241726f9-6653-403e-bb90-ce98fc089945.png"> ------------- Commit messages: - 8300725: Improve performance of ColorConverOp for default destinations with alpha Changes: https://git.openjdk.org/jdk/pull/12110/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12110&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8300725 Stats: 74 lines in 3 files changed: 54 ins; 6 del; 14 mod Patch: https://git.openjdk.org/jdk/pull/12110.diff Fetch: git fetch https://git.openjdk.org/jdk pull/12110/head:pull/12110 PR: https://git.openjdk.org/jdk/pull/12110