ImageIO does not write HEIC file types so you will need to use an external library. We believe that JDeli is the only pure, complete Java implementation available so we will document that. If you are looking for a free solution, we recommend the Nokia library on GitHub (which includes Java wrappers).
How to write an image as a Heic file with JDeli
- Add JDeli to your class or module path. (download the trial jar).
- Create a File (or OutputStream) object
File file = new File("/path/to/outputFile.heic"));
- Pass image, Heic type, and File (or OutputStream) object into write method
JDeli.write(bufferedImage, "heic", file);
In JDeli you can also use a typesafe version
JDeli.write(bufferedImage, OutputFormat.HEIC, file);
HeicEncoderOptions options = new HeicEncoderOptions(); JDeli.write(bufferedImage, options, file);
Start reading and writing images with one line of code
BufferedImage image = JDeli.read(streamOrFile);
JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)