HDR image support

Liam Miller-Cushon cushon at google.com
Mon Oct 6 11:57:14 UTC 2025


Hi,

Are there any plans around HDR image support in the JDK?

My colleague Alec Mouri provides the following background:

Advancements in display and imaging technology have enabled HDR (High
Dynamic Range) content, which allows for displaying content at a greater
luminance than SDR (Standard Dynamic Range) content. Google
<https://android-developers.googleblog.com/2025/08/what-is-hdr.html> and
Adobe <https://blog.adobe.com/en/publish/2023/10/10/hdr-explained> have
informative blog posts explaining this new technology.

HDR images are part of intentional standards ISO 22028-5
<https://www.iso.org/standard/81863.html> and ISO 21496-1
<https://www.iso.org/standard/86775.html>. ISO 21496-1 in particular is
heavily used by the mobile ecosystem to generate high-quality images. See
the UltraHDR <https://developer.android.com/media/platform/hdr-image-format>
image format as an example.

Every major operating system now has support for rendering HDR GUIs. See:
Android’s ExtendedRangeBrightness
<https://developer.android.com/reference/android/view/SurfaceControl.Transaction#setExtendedRangeBrightness(android.view.SurfaceControl,%20float,%20float)>
and COLOR_MODE_HDR
<https://developer.android.com/reference/android/content/pm/ActivityInfo#COLOR_MODE_HDR>,
Apple’s EDR
<https://developer.apple.com/documentation/metal/displaying-hdr-content-in-a-metal-layer>,
and Wayland’s HDR Protocol
<https://www.phoronix.com/news/Wayland-CM-HDR-Merged>, and Window’s Advanced
Color
<https://learn.microsoft.com/en-us/windows/win32/direct3darticles/high-dynamic-range>
.

Platforms built on top of these OSs are accordingly adding support for HDR.
See: QT <https://doc.qt.io/qt-6/qrhiswapchainhdrinfo.html> and CSS
<https://www.w3.org/TR/css-color-hdr-1/>.

Support in the JDK would involve decoding and display support.

Decoding support could be added to Image I/O. For ISO 22028-5, this means
that ICC_ColorSpace
<https://docs.oracle.com/javase/8/docs/api/java/awt/color/ICC_ColorSpace.html>
could support CICPs as described in ITU-T H.273
<https://www.itu.int/rec/T-REC-H.273> to represent HLG and PQ encodings.
For ISO 21496-1, this means that BufferedImage
<https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html>
could be decorated with a gainmap representation.

Display support could be added to Swing and JavaFX. This would involve
interacting with each major OS’s capabilities to color manage and draw HDR
images through ImageIcon or JComponent. Note that SDR content should not be
colorimetrically affected when there is no HDR on screen. I.e., the rest of
the UI should not “flicker”.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20251006/1b7765e8/attachment.htm>


More information about the client-libs-dev mailing list