HEIC stands for “High-Efficiency Image File Format”. It is a complex lossy file format for storing full color bitmapped images. It was developed by Apple but is an Open Standard. The filename extension for Heic files is: .heic
Here are some other questions about Heic you might also want to ask. If you have any other questions, please add a comment and we will try to answer.
What is it used for?
This format is used for maintaining image quality with smaller file sizes when compared to traditional formats like JPG. Heic files can be specially useful for extracting geocoding information on Apple platforms.
Why is it popular?
Apple uses it as the default option for many of its applications on its iPhones and other products since 2017. So, many people are using the image format without even realising it.
How well-supported is Heic?
It is very well supported by Apple on both its phones and computers (Preview will happily open Heic files). Both PhotoShop and the free image editor GIMP can open and convert Heic files for you. Windows Photos also support Heic images.
How can I learn about the image format?
You can get a (paid) download of all the Heic technical documentation from ISO. The standard is open but not free.
Is it possible to convert HEIC to JPG?
Yes. You can convert HEIC to JPG and vice versa. You will lose any transparency if you convert from HEIC to JPG.
Is it possible to convert HEIC to PDF?
Yes. You will need to print the HEIC (most printers offer a print as PDF), export as PDF in a graphics package such as Mac Preview or use a third party tool such as our JDeli library. JDeli is the best enterprise-level Java image library for performance and efficiency.
How to open Heic files in Java?
There is a free Nokia implementation on GitHub and Apache Tika includes a Heic parser.
There are several commercial solutions available that have HEIC support. Our JDeli library allows you to read, write and display Heic files.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);
What is JDeli?
JDeli is a commercial Java Image library that is used to read, write, convert, manipulate and process many different image formats.
Why use JDeli?
To handle many well known formats such as JPEG, PNG, TIFF as well as newer formats like AVIF, HEIC and JPEG XL in java with no calls to any external system or third party library.
What licenses are available?
We have 3 licenses available:
Server for on premises and cloud servers, Distribution for use in a named end user applications, and Custom for more demanding requirements.
How does JDeli compare?
We work hard to make sure JDeli performance is better than or similar to other java image libraries. Check out our benchmarks to see just how well JDeli performs.