On Wed, 12 Aug 2026 20:45:40 GMT, Andy Goryachev <[email protected]> wrote:

> Something is wrong: the reproducer fails to render the PNG image attached to 
> the ticket, `ImageIO.getWriter()` L1558 returns an empty iterator, so 
> `ImageIO.write()` fails
> 
> ```
>     private static byte[] writeImage(Image im, String format) throws 
> IOException {
>         ByteArrayOutputStream out = new ByteArrayOutputStream(65536);
>         try {
>             // using disk cache slows things down
>             boolean old = ImageIO.getUseCache();
>             ImageIO.setUseCache(false);
>             try {
>                 var bi = ImgUtil.fromFXImage(im, null);
>                 ImageIO.write(bi, format, out);
>             } finally {
>                 ImageIO.setUseCache(old);
>             }
>         } finally {
>             out.close();
>         }
>         return out.toByteArray();
>     }
> ```

I guess it will fail as ImgUtil class which is copied implementation of 
SwingFXUtils is not having this PR fix..
If I change ImageWriteTest_8388450.java to call SwingFXUtils.fromFXImage it 
passes

./jdk/bin/java @C:/Users/Prasantas/dev/javafx/jfx/rt/build/run.args 
ImageWriteTest_8388450.java
 OK eclipse-key-mappings.png test

 ```
private static byte[] writeImage(Image im, String format) throws IOException {
        ByteArrayOutputStream out = new ByteArrayOutputStream(65536);
        try {
            // using disk cache slows things down
            boolean old = ImageIO.getUseCache();
            ImageIO.setUseCache(false);
            try {
                var bi = SwingFXUtils.fromFXImage(im, null);
                ImageIO.write(bi, format, out);
            } finally {
                ImageIO.setUseCache(old);
            }
        } finally {
            out.close();
        }
        return out.toByteArray();
    }

-------------

PR Comment: https://git.openjdk.org/jfx/pull/2254#issuecomment-5275301421

Reply via email to