Nothing you open here is ever uploaded

Make a favicon from an image

Drop a square picture and get the full set: a favicon.ico containing several sizes in one file, PNGs from 16 up to 512 pixels, and the 180 pixel apple-touch-icon. The .ico is assembled properly rather than being a renamed PNG, which matters because a browser asks the file which sizes it holds. A picture that is not square is cropped from the centre rather than squashed, since a squashed logo at 16 pixels is unrecognisable.

This page loads no libraries at all — the work is done by the browser itself. Your file is read on your own machine and never sent anywhere — open your browser's network tab and watch while you use it.

Questions

Why does the .ico hold several sizes?

Because different places ask for different ones: the tab wants 16 pixels, the bookmarks bar 32, a desktop shortcut 48. A single file holding all three lets each consumer pick, which is what the format was designed for. A renamed 32 pixel PNG works in most modern browsers and looks blurry everywhere the browser has to scale it.

Which files do I actually need?

For most sites: favicon.ico at the root, a 32 pixel PNG, the 180 pixel apple-touch-icon for iOS home screens, and 192 and 512 pixel PNGs if you have a web manifest. The rest are there for completeness. All of them are produced so you do not have to come back.

What if my picture is not square?

It is cropped to a square from the centre, not stretched. At sixteen pixels a stretched logo turns into a smear and nobody can tell why, whereas a centre crop at least keeps the proportions of whatever survives. If the important part is off-centre, crop it yourself first.

Is the .ico a real one?

Yes — a proper icon directory with an entry per size, each pointing at a PNG payload, which every browser since Windows Vista reads. The byte layout is checked by a test that would catch an offset being off by one, because a malformed .ico is not rejected by anything: it simply shows nothing.

Other images tools

Everything here is free and works the same way — in your browser.