HDR image support

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


Thanks, I will start a thread on client-libs-dev@ instead.

On Mon, Oct 6, 2025 at 1:53 PM Alan Bateman <alan.bateman at oracle.com> wrote:

>
> It would be better to bring this to client-dev as this is where the image
> APIs are maintained.
>
> -Alan
>
>
> On 06/10/2025 12:10, Liam Miller-Cushon wrote:
>
> 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/core-libs-dev/attachments/20251006/d4f3d26a/attachment-0001.htm>


More information about the core-libs-dev mailing list