HEIC File
Definition
HEIC files are HEIF containers — High Efficiency Image File Format, ISO/IEC 23008-12, published in 2015 — holding stills encoded with HEVC, also known as H.265. Apple switched iOS to it as the default camera format in iOS 11 in 2017, which is why so many of these files exist. The compression is genuinely good: a HEIC is usually about half the size of a JPEG of the same photograph, and it carries 10-bit colour, depth maps, edit history and image sequences such as Live Photos. The extension is .heic or .heif and the MIME type is image/heic. What it does not have is a decoder in any mainstream browser: Safari on Apple hardware renders one by handing it to the operating system, while Chrome and Firefox on Windows, Linux and Android simply cannot, largely because of the patent licensing around HEVC.
Why It Matters
This is one of the few format problems that bites ordinary people rather than developers. Someone photographs a contract, a damaged wall or a whiteboard, uploads IMG_4821.HEIC to a page, checks it on their iPhone, sees it fine — and half the audience sees nothing at all. The failure is silent and asymmetric, which is what makes it so common. It is a file conversion problem rather than a hosting one: no header or server setting will make a browser decode a format it has no decoder for. Either convert the images before publishing, or change the phone's setting at Settings, then Camera, then Formats, then Most Compatible, which makes it shoot JPEG from then on.
How It Works
The HEIF container is built on ISOBMFF, the same box structure as MP4, so a HEIC is really a small collection of items: the coded image, its alpha or depth auxiliaries, a thumbnail, and item properties describing rotation, colour profile and dimensions. Rotation living in metadata rather than in the pixels is why a careless conversion can come out sideways — convert with something that honours the property. On a Mac, sips -s format jpeg IMG_4821.HEIC --out photo.jpg handles one file and a shell loop handles a folder; Preview can export a whole selection; on Windows the Photos app will do it once the HEVC codec is installed, and heif-convert or a recent ImageMagick works on Linux. After converting, check what MIME type the file is served with, because a JPEG accidentally still labelled image/heic will not render either.
Real-World Example
A roofer uploads eighteen survey photographs to a job report published on 99helpers at roof-survey.99helpers.site. On his iPhone every image appears; the client, on Windows in Chrome, sees eighteen broken icons and assumes the report is empty. Running sips over the folder at 2000 pixels wide and quality 80 produces JPEGs averaging 320 KB, and re-uploading fixes the page in a couple of minutes. 99helpers serves files exactly as uploaded and does not convert formats, so the conversion has to happen on the way in.
Common Mistakes
- ✕Testing the page only on an iPhone or a Mac — the format renders there and nowhere else, so the problem stays invisible to the person who caused it
- ✕Renaming the file to .jpg — the extension changes nothing, the bytes are still HEVC and the browser still cannot decode them
- ✕Converting with a tool that ignores the rotation property — portrait photographs come out on their side
- ✕Leaving the camera on High Efficiency when the photographs are destined for the web — every new batch repeats the problem
Related Terms
JPEG File
A JPEG file is a raster image compressed by discarding detail the eye is least likely to miss. It was designed for photographs, and every time you re-save one it loses a little more.
File Conversion
File conversion is turning a file of one format into another — a DOCX into a PDF, a PNG into a WebP, Markdown into HTML. It happens in a tool you run, not in the host that serves the result.
AVIF File
AVIF is an image format built from the still-frame coding of the AV1 video codec. It generally beats WebP by another 20 percent or so at matching quality, at the cost of much slower encoding.
Image Optimization
Image optimisation is the work of making the pictures on a page as small as they can be without a visible drop in quality. In practice it means resizing, choosing a format, setting a compression level and serving the right file to each device.
MIME Type
A MIME type, also called a media type or content type, is the short label a server sends to say what kind of data a response contains — text/html, image/png, application/pdf. The browser decides what to do with the bytes based on that label, not on the file name.
Put a file online in seconds
Drop in a document, an image, a page or a whole static website and share the link — free, with no build step and no server to set up.
Host a file free →