In this article, I will explain how to read HEIC files into Java as a BufferedImage. We also have a related article covering how to write HEIC files in Java.
ImageIO does not read HEIC file types so you will need to use an external library. We believe that JDeli is the only pure 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).
What is HEIC?
HEIC stands for “High Efficiency Image File Format”. It is a complex lossy file format for storing bitmapped images. It was developed by Apple but is an Open Standard.
The file name extension for HEIC files is: .heic
How to read a HEIC image in Java with JDeli
Step 1 Add JDeli to your class or module path. (download the trial jar).
Step 2 Create a File handle, InputStream pointing to the raw HEIC image. You can also use a byte[] containing the image data.
Step 3 Read the HEIC image into a BufferedImage
BufferedImage image = JDeli.read(heicFile); |
Read and write images in Java with one line of code
Read an Image with
BufferedImage image = JDeli.read(streamOrFile);
and write an Image with
JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)
how to download JDeli jar? I can not download it with your link
Hi Lin,
Thanks for contacting us. I am sorry you have not been able to download the trial. I have tested the link and it is working for me. Can you give me some more details on the problems you are having?