Convert HEIC to ICO

Converting HEIC to ICO wraps your iPhone photograph in the icon container a website builder is asking for, at 16, 32 and 48 pixels in one file. Crop the photo square on the phone first, because nothing here crops it — a 4:3 frame is centred with empty bands — and read what a 16-pixel browser tab can actually show before choosing which picture to use.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. ICO cannot hold everything a HEIC can.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Scaled down to icon sizes; detail beyond 256 pixels is discarded.

Up to 100 files at once. Mixed formats are fine.

Crop the HEIC square on the phone before you convert it

This is the step that decides whether the result looks deliberate. Nothing in this conversion crops: the picture keeps its proportions and is centred on a square canvas at the largest scale that fits, so a normal 4,032 by 3,024 iPhone frame arrives as a 4:3 picture with a quarter of the icon empty above and below it. Nothing is stretched, which is the important half — but a favicon is 16 pixels tall and you have just given four of them away.

Open the photograph in the Photos app, tap Edit, choose the crop tool and pick the square ratio, then position it on the part you actually want — the letters on the sign, the emblem, the single object. Save, share the cropped copy out, and convert that. Thirty seconds of cropping is worth more than any setting on this page.

What a browser tab can show, and what your photo will lose

A favicon is drawn at 16 CSS pixels. On a high-density screen the browser may pick 32 device pixels, and a bookmark bar or a pinned tab can go a little larger, but 16 by 16 is the size to design for. That is 256 pixels in total, fewer than there are words on this page.

What survives at that size is one shape and one or two colours. What does not survive is text of any kind below about four characters, thin lines, gradients, shadows and anything with a background behind it. A photograph of a shopfront becomes a brown smudge. A photograph of a single bold letter painted on a wall, cropped tight, becomes a recognisable icon — the difference is entirely in what was photographed and how close.

What this converter puts inside the ICO file

The file is a six-byte header, then a sixteen-byte directory entry per size, then a PNG for each — three of them with the default settings, at 48, 32 and 16 pixels, listed largest first. The format also allows a raw bitmap payload and that is what it originally meant, but every version of Windows since Vista reads a PNG inside an icon and the file comes out a fraction of the size, so that is what is written.

One quirk is visible in a hex editor: the width and height fields in the directory are a single byte each, so 256 does not fit and the format’s convention is to write zero instead. An icon whose entry says its size is 0 by 0 is the specification working as intended, not a corrupt file. You will only meet it if you choose a size set that includes 256; the default three all fit in a byte and read as themselves.

The 256-pixel ceiling applied to a HEIC from a phone

Whatever you feed in, nothing in the file exceeds 256 pixels — the ceiling is applied on the way through and there is no setting that raises it. A 12-megapixel photograph is reduced by a factor of about sixteen in each direction to reach it, and a 48-megapixel one by more than thirty. The sizes actually written come off that, so with the default set the reduction is a factor of eighty-four before the largest entry is reached.

Every one of those reductions is done with high-quality smoothing in a canvas, which is the right way round: shrinking a large photograph averages a great many pixels into each output pixel and hides noise rather than showing it. The result is a clean small picture of something that was never meant to be small, which is a different problem and not one resampling can solve.

Transparency: the ICO supports it and the HEIC has none

Icons look best with a transparent background, so they sit on a light or dark browser chrome without a visible box around them. The container here supports that, because the payload is a PNG and a PNG carries alpha.

A camera photograph has no transparency in it, so what you get is a fully opaque square. If the mark you photographed is dark on a pale wall, the pale wall becomes the icon’s background and it will show as a rectangle against a dark browser theme. Removing that background is a job for an editor before conversion, not something the conversion can infer.

What to photograph when the icon has to come from a phone

If you are going to shoot something specifically for this, shoot it as flat and as close as the lens allows: the emblem alone, filling the frame, straight on, in even light with no shadow across it. Avoid the whole sign, the whole shopfront and the whole product. One motif, one dominant colour, hard edges.

It is also worth photographing the mark against a plain background you can cut out later — a sheet of paper, a plain wall — because that gives you the option of a transparent icon without reconstructing edges by hand. If the business has a real logo file somewhere in an email from a designer, that is a better starting point than any photograph, and it is worth ten minutes of searching before converting.

The colour and metadata your iPhone wrote are not in the icon

The picture is decoded and re-encoded on the way into the PNG payload, so nothing from the HEIC’s metadata reaches the icon: no capture date, no camera model, no GPS coordinate. That is unambiguously good here, since a favicon is served to every visitor of the site and would otherwise be publishing where the photograph was taken.

The Display P3 profile an iPhone attaches does not travel either, so saturated colours will render slightly tamer than on the phone. At 16 pixels this is not something anyone will notice, and it removes one variable from how the icon looks across browsers.

Where to put the .ico file once you have it

Two things are worth doing with the result. Upload it wherever your site builder asked for it, and also make sure a copy sits at the root of the domain as favicon.ico, because browsers, crawlers and link previews request that path on their own initiative whether or not the page declares it.

Then check it in a real tab rather than in the builder’s preview, at the size it will actually be seen, on both a light and a dark browser theme. Caching is aggressive with favicons — a hard reload or a private window is often needed before the new one appears, and more than one person has re-converted a file three times because of that rather than because anything was wrong with it.

Converting a HEIC without sending it to a stranger

The whole job happens in the browser: libheif decodes the HEIC, a canvas resizes it, the PNG encoder runs and the icon container is written by a few dozen lines of JavaScript. Nothing is transmitted, which you can verify in the network tab or by disconnecting first.

It also means no queue and no waiting. Making an icon is an iterative business — crop it tighter, try the other photograph, try it without the background — and being able to run six attempts in a minute on your own machine is what makes iterating practical.

When the answer is a drawn mark rather than a HEIC at all

The honest recommendation, if the photograph does not reduce well, is not to use a photograph. A favicon drawn as a shape — an initial in a strong typeface, a simple silhouette, a solid colour with a letter knocked out of it — will read at 16 pixels where a photograph never will, and it can be made in any vector tool in a few minutes.

If you do go that way, produce it as an SVG and convert that to ICO instead: it goes into the same container with the same set of sizes, but the pixels it starts from are rendered from the drawing rather than captured through a lens, so the edges are hard where a photograph’s are soft. This page exists because sometimes the photograph is all there is, and it will produce a usable file — but it will not make a shopfront legible in a browser tab.

How to turn an iPhone HEIC photo into an ICO favicon

  1. Crop the photograph to a square in the iOS Photos app first, tight on one motif.
  2. Drop the HEIC onto this page. It is decoded and reduced to icon sizes in your browser.
  3. Download the .ico file and put a copy at the root of your domain as favicon.ico.

HEIC against ICO: a 12-megapixel capture in a 16-pixel tab

HEIC compared with ICO
HEICICO
Full nameHigh Efficiency Image ContainerWindows Icon
File extension.heic.ico
Media typeimage/heicimage/x-icon
CompressionLossy — file size is bought with qualityLossless — nothing is discarded
First published20151985
Published byMPEGMicrosoft
SpecificationISO/IEC 23008-12
LicensingPublished, not standardisedPublished, not standardised
Standing todayCurrentNiche
Bit depth108
Colour it can describeYCbCr, wide gamutRGB, indexed palette
Largest image256 px per side
Opens in a browserSome browsersEvery browser
Considered insteadJPG, AVIF, WebPPNG, SVG

What is lost

ICO holds one page. A multi-page HEIC converts a page at a time rather than in one file.

HEIC carries up to 10 bits per channel and ICO stores 8. The extra precision is what survives heavy correction without banding, so the conversion is best made after the editing rather than before it.

What survives

Transparency survives. Both HEIC and ICO store an alpha channel, so a cut-out stays cut out and nothing is filled in behind it.

Opening the result

ICO opens in every current browser. HEIC has narrower browser support than that. If the file is going onto a web page or into a form, that is usually the whole reason for the conversion.

The usual programs do not overlap: HEIC opens in Apple Photos and Adobe Lightroom, ICO in GIMP and IcoFX — so whoever receives the result needs something from the second list.

File size and quality

The result is larger than the original and no better. HEIC has already discarded detail, and ICO stores what is left without discarding more — it prevents further loss rather than undoing the first one.

What each format is for

The two are aimed at different work: HEIC at phones and photography, ICO at the web. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

HEIC is MPEG's format, published in 2015. It records 10 bits per channel.

ICO comes from Microsoft and dates from 1985. GIMP and IcoFX all read it.

ICO was published in 1985 and HEIC in 2015. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.

HEIC to ICO: cropping, sizes and what browsers want

Are my HEIC files uploaded anywhere?

No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is libheif, the reference decoder for Apple's HEIC; your browser fetches it once and caches it.

What size does a favicon actually display at?

16 CSS pixels in a browser tab, and 32 in a bookmark bar or on some high-density displays. That is the whole canvas. A 12-megapixel photograph reduced to a 16-pixel square keeps roughly one part in 63,000 of its detail, which is why the useful advice for this conversion is mostly about what to photograph rather than how to convert it.

Will it crop my photo to a square?

No, and this catches people out. The icon is square, and your 4:3 photograph is centred on it with empty bands above and below rather than cropped — so a 4,032 by 3,024 iPhone frame fills three quarters of the icon and no more. Nothing is stretched, but a quarter of a canvas that is already 16 pixels wide is being thrown away. Crop to a square in the Photos app on the phone before converting.

How many sizes are in the ICO file?

Three by default — 16, 32 and 48 pixels, each stored as its own image in the same file. The "Icon sizes" control also offers all six common sizes up to 256, or a single 256-pixel entry. The small sizes are your photograph reduced, not a hand-tuned drawing, so an icon editor is still the answer if you want one of those.

Does a modern site even need an .ico file?

Not strictly. Every current browser will take a PNG referenced from a link tag, and a PNG at 32 or 48 pixels usually looks better. What .ico still buys you is the bare /favicon.ico at the root of the domain, which browsers and crawlers request whether you asked them to or not, and which some older tools expect to find. Many people ship both.

Is this the same as the icon on an iPhone home screen?

No — that is a different mechanism entirely. A web page pinned to an iOS home screen uses an apple-touch-icon, which is a PNG, conventionally 180 by 180 pixels, and it is never an .ico. If your site builder is asking for both, convert to ICO here for the tab and produce a square PNG separately for the home screen.

Does the photograph get uploaded?

No. The HEIC is decoded by libheif in the page, scaled in a canvas, encoded as a PNG and wrapped in the icon container, all on your own device.

More about these formats