Image to ICO Favicon Generator

Choose an image and one of the five square sizes. With JavaScript the icon is generated in this browser and nothing is uploaded; without JavaScript the form posts the file to the server. Either way you download a favicon.ico that keeps transparency and the aspect ratio of the source.

1. Select a PNG, JPEG, GIF, or WebP image. A square image produces the best result.

2. Choose the ICO dimensions required by the target browser or application.

3. Generate and download the favicon.ico file, then add it to your website assets.

ICO dimensions:

How to turn an image into a favicon.ico

Choose a PNG, JPEG, GIF or WebP image, pick one of the five square sizes, and download a favicon.ico for a browser tab, a bookmark or an installed app. The icon keeps the shape of the source: a non-square image is fitted, centred and padded with transparent margins instead of being stretched.

With JavaScript the file is decoded in this browser and the ICO is written here, so the image is never uploaded. The form still works with JavaScript switched off; it posts the file to the server, which accepts up to 200 KB. Both paths write the same layout: a 32-bit image plus its 1-bit AND mask, so transparency survives.

  1. Choose an image: PNG, JPEG, GIF or WebP.
  2. Pick the square size: 16, 32, 48, 64 or 128 pixels.
  3. Press Generate ICO.
  4. Compare the preview with the source image; the checkerboard behind the preview is transparent.
  5. Download favicon.ico and place it at the site root, or point <link rel="icon"> at it.
  6. If a browser still shows the old icon, hard-refresh: favicon caches are sticky.

What each size is for, how the image is fitted, and where the conversion runs

What each size is for

16 px is the classic tab icon, 32 px is the default here and covers tabs on high-density screens, 48 px and 64 px are used by desktop shortcuts, task switchers and some Android launchers, and 128 px covers store listings and app tiles. ICO is written rather than PNG because shortcut files and older Windows shells expect an ICO container.

One file holds one image: a 32 px icon is 4,286 bytes, 16 px is 1,150 bytes and 128 px is 67,646 bytes. Browsers scale the single image they find, so the size you pick is a trade-off between crispness on large tiles and bytes on every page load.

How the image is fitted

A square source is scaled straight to the chosen size. A non-square source keeps its aspect ratio: it is fitted into the square, centred, and the leftover margins stay transparent, so circles stay circles and logos are not distorted.

Transparency is written twice: in the 32-bit alpha channel and in the AND mask that older readers still use. A transparent PNG keeps its transparent background instead of turning black. An animated GIF is read as its first frame, and JPEG has no transparency to keep.

Where the conversion runs and what it refuses

With JavaScript the image never leaves the device: there is no upload step, no file-size limit, and the tool keeps working offline. The no-JavaScript fallback posts the image to the server and accepts up to 200 KB (204,800 bytes).

Both paths refuse images larger than 4096 × 4096 pixels, because a larger bitmap exhausts the memory a request may use, and both refuse formats other than PNG, JPEG, GIF and WebP. Upscaling is allowed — a 4 × 4 source produces a 128 px file — but the result stays as soft as its source.

Recent tools: