<div dir="ltr"><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><font face="arial, sans-serif">Hi,</font></span></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><font face="arial, sans-serif">Are there any plans around HDR image support in the JDK?</font></span></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><font face="arial, sans-serif">My colleague Alec Mouri provides the following background:</font></span></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face="arial, sans-serif"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">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. </span><a href="https://android-developers.googleblog.com/2025/08/what-is-hdr.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">Google</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> and </span><a href="https://blog.adobe.com/en/publish/2023/10/10/hdr-explained" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">Adobe</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> have informative blog posts explaining this new technology.</span></font></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face="arial, sans-serif"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">HDR images are part of intentional standards </span><a href="https://www.iso.org/standard/81863.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">ISO 22028-5</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> and </span><a href="https://www.iso.org/standard/86775.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">ISO 21496-1</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">. ISO 21496-1 in particular is heavily used by the mobile ecosystem to generate high-quality images. See the </span><a href="https://developer.android.com/media/platform/hdr-image-format" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">UltraHDR</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> image format as an example.</span></font></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face="arial, sans-serif"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Every major operating system now has support for rendering HDR GUIs. See: Android’s </span><a href="https://developer.android.com/reference/android/view/SurfaceControl.Transaction#setExtendedRangeBrightness(android.view.SurfaceControl,%20float,%20float)" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">ExtendedRangeBrightness</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> and </span><a href="https://developer.android.com/reference/android/content/pm/ActivityInfo#COLOR_MODE_HDR" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">COLOR_MODE_HDR</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">, Apple’s </span><a href="https://developer.apple.com/documentation/metal/displaying-hdr-content-in-a-metal-layer" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">EDR</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">, and Wayland’s </span><a href="https://www.phoronix.com/news/Wayland-CM-HDR-Merged" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">HDR Protocol</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">, and Window’s </span><a href="https://learn.microsoft.com/en-us/windows/win32/direct3darticles/high-dynamic-range" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">Advanced Color</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">.</span></font></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face="arial, sans-serif"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Platforms built on top of these OSs are accordingly adding support for HDR. See: </span><a href="https://doc.qt.io/qt-6/qrhiswapchainhdrinfo.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">QT</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> and </span><a href="https://www.w3.org/TR/css-color-hdr-1/" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">CSS</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">.</span></font></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><font face="arial, sans-serif">Support in the JDK would involve decoding and display support.</font></span></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><font face="arial, sans-serif"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Decoding support could be added to Image I/O. For ISO 22028-5, this means that </span><a href="https://docs.oracle.com/javase/8/docs/api/java/awt/color/ICC_ColorSpace.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">ICC_ColorSpace</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> could support CICPs as described in </span><a href="https://www.itu.int/rec/T-REC-H.273" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">ITU-T H.273</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> to represent HLG and PQ encodings. For ISO 21496-1, this means that </span><a href="https://docs.oracle.com/javase/8/docs/api/java/awt/image/BufferedImage.html" target="_blank" style="text-decoration-line:none"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;text-decoration-line:underline;vertical-align:baseline">BufferedImage</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"> could be decorated with a gainmap representation.</span></font></p><font face="arial, sans-serif" style="color:rgb(0,0,0)"><br></font><p dir="ltr" style="color:rgb(0,0,0);line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline"><font face="arial, sans-serif">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”.</font></span></p></div>