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
If a .heic file has landed on your computer and nothing will open it, that is because the photo came off an Apple device and most other software needs something installed first. Skip to how to open a HEIC file for the fix on each platform.
The HEIC file type at a glance
The HEIC file format is an international standard rather than an Apple invention, so its media types and file extensions are registered publicly even though Apple is what made it common.
| File extension | .heic (also .hif; .heics for sequences) |
| Media (MIME) type | image/heic and image/heic-sequence |
| Container format | HEIF (ISO/IEC 23008-12) |
| Built on | ISO Base Media File Format (ISO/IEC 14496-12) – same box structure as MP4 |
| Image compression | HEVC (H.265) |
| Default format on | iPhone and iPad since iOS 11 (2017) |
Because HEIF inherits the box structure of the ISO Base Media File Format, one .heic file can hold more than a single picture. Nokia's technical description of HEIF lists what can sit inside: auxiliary images such as "an alpha plane or a depth map", image sequences for "image bursts or animations like cinemagraphs", a smaller embedded thumbnail, and Exif or XMP metadata. It also supports derived images, which store rotations and crops as instructions so that "the original coded images are kept in the file".
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 especially useful for extracting geocoding information on Apple platforms.
Other use cases can include:
- 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.
- 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.
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 supports Heic images.
How to open a HEIC file?
What you need depends on the platform. Apple devices open HEIC files on their own; most other systems need something added first.
On an iPhone, iPad or Mac
Open it as you would any photo. Apple's support article notes that "iOS 11 and macOS High Sierra introduced support for these new, industry-standard media formats". On a Mac, Preview also converts them: choose File > Export, then pick from "HEIC, JPEG, JPEG-2000, OpenEXR, PDF, PNG, or TIFF".
On Windows
Windows needs two separate add-ons from the Microsoft Store, which is where most of the confusion comes from. HEIF Image Extensions is free and handles the container. Decoding the pictures inside it needs HEVC Video Extensions, which Microsoft sells for $0.99. Microsoft's support page for the Photos app is explicit that you need both, "even if you only plan on using photos and not videos". Some PCs arrive with one or both already installed, because manufacturers can provide them.
On Android
Google's supported media formats table lists HEIF decoding from Android 9.0 and encoding from Android 10. Read the small print: the same table marks it "Device optional", so it is not guaranteed on every handset. Google Photos accepts HEIC uploads, with .heic and .heif both on its list of supported file types.
On Linux
libheif is the usual route. Its heif-dec command decodes HEIF images "to JPEG, PNG, TIFF, WebP, or Y4M":
heif-dec example.heic example.jpeg
If a tutorial tells you to run heif-convert, that was the old name; the 1.18.0 release notes record that it "has been renamed to heif-dec". libheif also ships a gdk-pixbuf loader, which is what gets HEIC thumbnails appearing in GNOME.
In a web browser
Mostly you cannot. caniuse's HEIF/HEIC entry shows support in Safari 17 and later and in no version of Chrome, Firefox, Edge or Opera, which works out at roughly 17% of users. If you are putting photos on a web page, this is the reason to convert them first.
In Photoshop, GIMP and Google Photos
GIMP has read and written HEIF since 2.10.2 in May 2018, whose release announcement says "this release brings HEIF image support, both for loading and export". Adobe publishes instructions for installing HEIC and HEVC codecs for Photoshop, which on Windows point back at the same two Microsoft extensions described above, and separate notes on HEIC support in Lightroom.
How can I learn about the HEIC file 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.
It helps to know what the target format can and cannot carry before you convert. The table below compares HEIC with the two formats people most often convert it to.
| 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) – generally larger files |
| 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 such as Live Photos and 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 and 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 pure 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.
As experienced Java developers, we help you work with images in Java and bring over a decade of hands-on experience with many image file formats.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(avifImageFile);
// Write an image
JDeli.write(bufferedImage, "avif", outputStreamOrFile);
// 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.
