Image to ICO Converter

An icon file is a bundle, not a picture. Feed it a PNG, JPEG, or WebP and get back one .ico carrying every resolution a browser or the Windows shell might ask for.

Drop an image
Drop a PNG to convert to ICO
PNG, JPG, WebP in · multi-resolution .ico out · transparency kept · processed in your browser

Image to ICO — Free, Fast & Private

Asking to turn an image into an .ico sounds like the same kind of job as turning a JPEG into a PNG, and it quietly is not. Those are both single pictures in different wrappers. An icon file is a small bundle: a short index at the front, then several complete pictures behind it, each one the same artwork rendered at a different square resolution. So the real question this tool answers is not “which codec” but “which family of sizes” — you hand over one image and get back a set of renderings that travel together as a single downloadable file.

All of that assembly happens on your own machine. The image is decoded, resized at each resolution, re-encoded, and packed into the container by JavaScript in this tab, and the finished file is produced by the page rather than fetched from anywhere. That matters more than the usual privacy boilerplate suggests, because the artwork people convert to icons is disproportionately unreleased branding — a mark that has not shipped yet, a client asset under agreement, a side project nobody has seen. It stays on your disk.

What is actually inside an .ico file

Open one in a hex editor and the structure is refreshingly plain. Six bytes at the top declare that this is an icon and count how many pictures follow. Then comes one sixteen-byte record per picture, and each record is a tiny address card: how wide the image is, how tall, how many bytes it occupies, and how far into the file it starts. After all the records, the picture data sits back to back. Nothing is interleaved and nothing is compressed at the container level — the wrapper is pure bookkeeping, and the pictures inside carry their own compression.

Because every record carries an offset and a length, a reader never has to parse the whole file. It skims the index, decides which entry it wants, seeks straight to that offset, and reads exactly that many bytes. This is why a four-resolution icon costs a browser almost nothing: it reads the header, takes the entry that matches its display, and ignores the rest of the file entirely. The pictures MiniPx writes into those slots are complete PNG files, stored byte for byte, and the encoder verifies each one begins with the PNG signature before it is packed — a container whose index promises one thing while the payload is another fails silently and mysteriously days later, so it is checked at write time instead.

Why two programs read the same file and show different pixels

Nothing in the format tells a reader which entry to use. Each consumer decides for itself, and their reasoning differs enough to be surprising. A browser drawing your tab has a slot roughly sixteen CSS pixels wide, so on an ordinary display it reaches for the 16px entry — but on a Retina or 4K screen that same slot is thirty-two device pixels, and the browser takes the 32px entry instead. The favicon looks identical to the user and came from two different pictures.

Windows is fussier still, because the shell asks by view context rather than by pixel count alone. Explorer's small-icons list wants 16, its medium view wants 32, large wants 48, and extra-large jumps to 256. Layer display scaling on top and the numbers stop being round: at 150% scaling the taskbar effectively wants a 24px icon, which no ICO carries as a standard entry, so the shell grabs the nearest larger picture and shrinks it. That last behaviour explains most of the blurry icons people blame on their artwork. When a reader cannot find the size it wants, it does not give up — it rescales the closest thing, and a 48px picture squeezed into a 24px box loses the crispness the 32px entry would have kept.

Which resolutions belong in the bundle

Think of the size list as a menu you are printing for readers you will never meet, and the cost of an extra dish is only kilobytes. Sixteen and thirty-two are non-negotiable: between them they cover standard and high-density browser tabs, which is where most icons spend their lives. Forty-eight earns its place the moment the file ever touches a desktop — shortcuts, Explorer's medium and large views, and the alt-tab switcher all live in that neighbourhood. Two hundred and fifty-six exists for one reason, the extra-large Explorer view and pinned-site tiles on Windows, and it is the only entry heavy enough to think about.

Where the file will live decides the trade. A website favicon is requested by every visitor on every cold load, so the classic 16/32/48 trio is the sensible default and the 256 entry is optional weight you are asking strangers to download. An icon destined for a Windows application, a shortcut, or a folder should carry all four, because the shell will otherwise improvise, and improvised rescaling is exactly the softness you are trying to avoid. Each resolution here is rendered independently from your original rather than chained off the previous one, so the small entries are as sharp as the source allows.

What your source image needs to survive the shrink

PNG, JPEG, and WebP are all accepted. PNG and WebP bring an alpha channel with them and it comes through intact, which is what lets an icon sit on a dark tab strip or a photographic wallpaper without a rectangle of background around it. A JPEG has no transparency to carry, so whatever colour fills its corners will fill the corners of the icon too — if that is a white box around a logo, the honest fix is to remove the background before converting.

Shape is handled without surprises: a non-square source is centred on a transparent square rather than cropped or stretched, so a wide wordmark arrives complete with empty space above and below. Detail is the part no converter can fix for you. At 16 pixels square there are 256 pixels in total, which is fewer than the characters in this sentence, and anything with hairline strokes, gradients, or readable text turns to mush at that scale. Photographs make particularly poor icons for the same reason. If your mark is intricate, convert a simplified version — one glyph, one shape, one initial — and keep the full lockup for places with room to show it.

Where the finished icon goes

For a website, the file belongs at the root of your domain as favicon.ico, because browsers request that exact path out of habit even when no markup mentions it. On Windows, a shortcut takes one through Properties and Change Icon, a folder takes one through its desktop.ini, and a compiled application takes one as an icon resource at build time. Each of those surfaces reads the container the same way and simply chooses a different entry.

If you need more than the .ico — the Apple home-screen icon, the manifest pictures Android reads on install, and the markup to declare them all — the favicon generator produces that whole set in one pass around the same engine. And if the source image you are starting from is an unoptimised export, running it through the PNG compressor is worthwhile for the copy you keep, even though the icon entries are re-encoded here anyway.

How it works

  1. Add your image: Drop a PNG, JPEG, or WebP into the tool. Any dimensions work — every entry is rendered from the original, so a large square source gives the cleanest results.
  2. Decide which entries to include: Keep 16, 32, and 48 for anything that lives on the web. Add 256 when the icon is destined for Windows Explorer, a shortcut, or an application resource.
  3. Build the container: Press convert. Each resolution is rendered and encoded, then wrapped in the icon index — a second or so of work, all of it in this tab.
  4. Save and place the file: One .ico downloads with every chosen resolution inside. Put it at your site root, or point a Windows shortcut, folder, or executable at it.

Frequently asked questions

Can I convert a JPG or WebP to ICO, or only PNG?
All three work. The difference is transparency: PNG and WebP can carry an alpha channel through to the icon, while a JPEG cannot, so whatever colour surrounds your subject becomes a solid backdrop in every entry. For a logo on a white JPEG background, strip the background first and the icon will sit cleanly on any tab colour.
Why does one .ico contain several images?
Because the programs reading it need different sizes and there is no good way to guess which. A browser tab wants 16 or 32 pixels depending on display density, Explorer wants anything from 16 to 256 depending on view mode, and the taskbar depends on your display scaling. Bundling them lets each reader take the entry that fits instead of rescaling one picture badly.
What size image should I start from?
Square and at least 256 pixels on a side, so the largest entry never has to be invented by upscaling. Bigger is fine and usually better: a 512 or 1024px master gives the renderer plenty of information to work with on the way down, and nothing is lost by starting large.
My icon looks blurry in Windows but fine in the browser. Why?
Almost always a missing entry combined with display scaling. Windows asks for sizes that are not standard ICO resolutions — 24px at 150% scaling, for instance — and when the exact size is absent it takes the nearest one and resamples it. Including 16, 32, 48, and 256 gives the shell enough choices that its fallback rarely fires.
Does the file get uploaded anywhere during conversion?
No. Decoding, resizing, encoding, and container assembly all run in JavaScript inside this tab, and the download is generated locally by the page. There is no server step to intercept, which you can verify by disconnecting after the page loads and converting anyway.
How large will the .ico be?
Usually somewhere between five and forty kilobytes for the 16/32/48 trio, since those pictures are tiny and the entries are PNG-compressed. Adding the 256px entry is what moves the number, typically by tens of kilobytes depending on how detailed the artwork is. Simple flat marks land at the low end of every range.
Is there a limit on how many entries an icon can hold?
The format allows a great many, but there is no practical reason to go past the standard four. Every extra entry is bytes that some reader will download and never look at, and no current browser or Windows version asks for a resolution outside 16 through 256. More entries do not make an icon sharper; the right entries do.

All Image Tools

Solutions by use case