HEIC stands for “High efficiency image container” and it is a specific implementation for still images inside HEIF. It was developed by MPEG and adopted 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 contact us 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.
Other use cases can indlude:
- HDR and Advanced Displays: It supports 10-bit color and high dynamic range (HDR), so it’s used for photographs destined for OLED, Retina, and HDR-capable screens, providing vibrant, true-to-life color.
- Live Photos and Bursts: HEIC supports multiple images per file, so it is ideal for storing iPhone Live Photos, burst shots, and short animations. This minimizes wasted storage and keeps image sequences grouped together.
- Smartphone Photo Libraries: HEIC is the default format for photos on Apple devices, allowing users to store more images at high quality using less storage space, specially important for iPhones, iPads, and MacBooks with limited storage.
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.
| Feature | HEIC | JPG (JPEG) | PNG |
|---|---|---|---|
| Compression | High-efficiency (HEVC/H.265), smaller files at same quality | Lossy, larger files at same quality | Lossless (can be lossy), larger files generally |
| Color Depth | Up to 16-bit | 8-bit | Up to 48-bit |
| Transparency Support | Yes (alpha channel supported) | No | Yes |
| Animation/Multi-Image | Yes (multiple images per file: Live Photos, bursts) | No (single image) | Limited (APNG extension supports animation) |
| Metadata Support | Extensive (Exif, XMP, editing info, HDR, depth data) | Basic (Exif, IPTC, XMP) | Basic (text, chunk-based) |
| Compatibility | Modern Apple/Android, limited Windows/web support | Universal (all platforms, web, print) | Universal, especially web and software graphics |
| Typical Use | Smartphone photos, Live Photos, efficient storage | General photography, publishing, sharing | Web images, graphics needing transparency |
| HDR Support | Yes | Limited | Limited |
| Transparency | Yes | No | Yes |
| File Size | Smallest for same quality | Medium | Large |
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.
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(avifImageFile);
// 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.
