filetity

IMAGE -> ICO · Local tool

ICO Converter

Turn any image into a .ico holding every size an icon needs.

Last updated

  1. 01 / Your device

    the file stays here

  2. 02 / Browser memory

    the work runs locally

  3. 03 / Back to you

    saved on this device

When you would use this

Situations, not settings.

A favicon for a site that is nearly finished
The logo exists as whatever the designer sent. This takes it in that format and writes the .ico the server asks for.
An icon for a Windows application or shortcut
Windows reads ICO and picks the size it needs for the desktop, the taskbar and the file listing.
An old favicon that was a renamed PNG
It worked in browsers and failed everywhere strict. A real ICO holds each size properly instead.

How it works / no cloud

A conversion engine, not an upload form.

No browser can write an ICO: `canvas.toBlob("image/x-icon")` does not fail, it silently returns a PNG, so the container is written here by hand. The image is decoded with the browser's own codec, drawn square at each icon size with the whole picture fitted inside rather than cropped, and each size is stored as a PNG payload, which is what keeps transparency. An SVG takes a different route and is drawn fresh at every size, because a vector has no resolution to run out of.

  • Offline ready
  • Installable app
  • No file limit queue

Straight answers

No accordion. Nothing hidden.

Is it free?
Yes, with no watermark and no page limit.
Does it need an account?
No. There is no account system.
Is my file processed on my device?
Yes. The file is read by your browser and never uploaded. There is no server to send it to.
What formats are supported?
PNG, JPG, WebP, GIF, BMP and SVG in. ICO out, holding up to 16, 32, 48, 64, 128 and 256 pixel versions in one file.
What are the limits?
Sizes larger than the image you give it are left out rather than upscaled into a blur, so a 48 pixel PNG produces 16, 32 and 48 and nothing above. An SVG is the exception and produces all six. Only the first frame of an animated GIF is used, because an icon does not move.
Does it work on mobile?
Yes, on any modern mobile browser. Large files are limited by the memory the phone gives the browser.
Does it work offline?
Yes. Nothing is downloaded to make this work, so it keeps working with no network connection once the page has loaded.
Which formats can it turn into an ICO?
PNG, JPG, WebP, GIF, BMP and SVG. PNG is the usual source because it already has transparency. WebP to ICO and GIF to ICO work the same way, taking the first frame of an animation, since an icon does not move. SVG is the best source of all, and gets its own page, because every size can be drawn from the vector instead of being scaled from pixels.
Why not just rename my PNG to favicon.ico?
Because a renamed PNG is still a PNG, and an ICO is a container that holds several sizes at once. Current browsers are forgiving enough that a renamed file often works, and then it fails in the places that are strict: a Windows shortcut, an older reader, a crawler. The whole point of ICO is that the system picks the size it needs rather than resampling one you picked.
What size should a favicon be?
All of them, which is what this produces. 16 is the browser tab and it is the size that decides whether your mark reads at all. 32 is the bookmark bar and a retina tab. 48 is Windows. 128 and 256 are desktop shortcuts and high density displays. One ICO holds every one, and the system chooses, which is why the answer is not a single number.
Why is an upscaled icon left out instead of included?
Because a 256 pixel icon stretched from a 48 pixel source is soft and obviously wrong at the size people actually look at it. The page shows which sizes it wrote so you can see what you got. If you need every size from a small source, redraw the mark as an SVG and use the SVG page: a vector is the one input that can produce them all honestly.

How this one works

Keep working locally

7 available · more coming