Drop in a PNG and get back a real multi-size .ico. It runs in your browser, so the file is never uploaded anywhere.
Drop a PNG here, or click to choose
JPEG, WebP, GIF, BMP and SVG work too. Up to 12 MB. Nothing is uploaded — the conversion happens on this device.
This is the thing that makes ICO different from PNG or JPEG, and it explains most of what follows. An .ico file does not hold one picture. It holds a short directory — six bytes of header, then sixteen bytes per image saying how big that image is and where in the file it starts — followed by several complete images packed one after another.
So a single favicon.ico can carry a 16-pixel version drawn for legibility, a 32-pixel version with more detail, and a 48-pixel version for a desktop shortcut. Windows and the browser each read the directory, pick the entry closest to the size they need, and ignore the rest. That is why renaming a PNG to .ico does not work: the directory is not there, and nothing knows how to read what follows.
Since Windows Vista each of those packed images may be an ordinary PNG. Before that they had to be uncompressed bitmaps with a separate one-bit mask for transparency, which is why very old .ico files are so much larger than they look. This converter writes PNG payloads.
Three cover almost everything, and they are the three ticked by default:
The larger boxes are there because desktop applications genuinely use them: Windows Explorer will draw a 256-pixel entry in its extra-large icon view. For a website favicon they are dead weight. Every image inside the file is downloaded whenever the file is, so adding 128 and 256 to a favicon roughly quadruples a request that every cold visitor makes, to serve a size no browser will ever ask for. Tick them for an application icon; leave them alone for a site.
The width and height in each directory entry are stored as a single byte each, and a byte cannot hold 256. The format works around that by treating zero as the code for 256, which is fine until someone tries to write 512: the low byte of 512 is also zero, so a 512-pixel entry is byte-for-byte indistinguishable from a 256-pixel one. Windows reads it as 256, scales the pixels to match, and the result is soft with no error anywhere to explain why.
Some converters write the entry anyway. This one will not. Anything above 256 pixels comes out as a loose PNG instead, which is the correct home for it — a 512-pixel icon is what Android reads from the web manifest, and that has never been an ICO in the first place.
A 16-pixel square is 256 pixels in total, which is about the same amount of information as a single letter of body text. A wordmark reduced to that size becomes a grey smear; a detailed illustration becomes a different grey smear. The marks that work are the ones already built from two or three shapes: a monogram, a symbol, a strong silhouette.
Two settings on this page exist for that. Breathing room insets the mark so it is not touching the edges, which matters because most surfaces that draw a favicon put something immediately beside it. And if the source is not square, the choice is between padding it and cropping it — padding keeps the whole mark and makes it smaller, cropping fills the square and cuts the ends off a wide logo. Padding is the safer default and is what happens unless you change it.
Transparency is preserved. Pick a solid background instead if the mark is dark and might land on a dark surface, because a transparent dark logo on a dark tab bar disappears entirely.
Browsers ask for /favicon.ico at the root of a domain on their own initiative, without being told to, and they have done so since long before the <link rel="icon"> tag existed. If nothing is there, every cold visit puts a 404 in the log. Putting a real file at that path is the cheapest possible fix, and it is why the .ico has outlived several attempts to replace it.
It is not the whole job any more, though. Apple wants a 180-pixel PNG, Android reads two sizes out of a web manifest, and none of that lives in an ICO. If you are setting up a site rather than converting a single file, the favicon generator writes all of those at once along with the markup that points at them.
The image is decoded by the browser, resized on a canvas, encoded back to PNG at each size, and then packed into an ICO container written byte by byte in the page. There is no server anywhere in that path, no queue to wait in, and no copy of a client’s unreleased logo sitting on a stranger’s disk. Turn the network off after this page has loaded and it still works.
SVG to PNG
Convert SVG files to PNG at any scale, in the browser. Batch and transparent background.
HEX to RGB
Paste a hex colour, get RGB, HSL and CSS you can copy.
RGB to HEX
The other direction, with the same converter underneath.
PNG to SVG
Trace a bitmap into vector paths, in the browser. Honest about when it works.
CSS Grid generator
Draw a grid, copy the CSS. Flexbox on a second tab.
Mesh gradient generator
Layered radial gradients, exportable as CSS or PNG.
OG image generator
Make a 1200x630 share card, and check the tags on a page you already have.
Website mockup generator
Drop a screenshot into a browser or device frame and export it.
Favicon generator
Every icon file a site needs, plus the head markup, from one image.
Designing a site? Siter.io builds it from Figma.