In this article, I will explain how to read HEIC files into Java as a BufferedImage.
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?
The file name extension for HEIC files is:
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);
Why use JDeli to read HEIC files?
JDeli offers a range of advantages over ImageIO and alternatives, including:
- complete implementation of Heic spec
- implements mirroring, rotation and clapping (ie cropping)
- 100% Java implementation
- no dependencies on other Heic libraries
- highly optimized memory usage
- supports threading
Do you need to write or read JPEG in Java?
We have an easy guide on how to write JPEG in Java using ImageIO and JDeli.
You can learn how to read/write most of the image files in ImageIO. However, it gives little control over the process.
JDeli is easy to use and offers complete support, so why don't you give a try?