PNG to ICO converter
Convert PNG images to ICO format
An ICO file is a tiny container holding one or more icon images. This converter writes the simplest useful version of that: a single 32x32 entry in uncompressed 32-bit BGRA, which is the size Windows Explorer and browser tab bars reach for most often. Your PNG is scaled down to 32 pixels square with the canvas smoothing the browser applies, and the alpha channel survives the trip, so a rounded or cut-out mark stays cut out. Because the geometry is fixed, every file this pair produces is exactly the same length.
Key facts about PNG to ICO converter
| Output geometry | One image, 32x32 pixels, always. The resize presets are hidden for this target because the size is not negotiable. |
|---|---|
| Exact file length | 4,158 bytes every time: a 6-byte directory header, a 16-byte entry, a 40-byte DIB header and 4,096 bytes of pixels. |
| Alpha channel | Kept. Pixels are written as 32-bit BGRA, so a transparent PNG corner stays transparent in the icon. |
| Pixel storage | An uncompressed DIB written bottom-up, not the PNG-compressed icon variant that Windows Vista introduced. |
| Scaling | Your image is drawn into a 32x32 canvas in one step, so fine detail is smoothed away rather than redrawn by hand. |
| Aspect ratio | Not preserved - a non-square PNG is squashed into the square, so crop it first if the proportions matter. |
| Sizes not included | No 16x16, 48x48 or 256x256 entry. Systems that want a sharper icon will upscale the 32x32 image. |
| Where it works | A favicon.ico at a site root, a Windows shortcut or application icon, and desktop software that asks for .ico specifically. |
| Where it does not | macOS Preview will not open .ico, and app-store icon requirements almost always ask for PNG at several fixed sizes instead. |
What happens to your file
No icon service is involved. The page decodes your PNG, draws it into a 32-pixel canvas, reads the RGBA array back with getImageData, and writes the ICONDIR, the icon entry and the bottom-up BGRA pixel block into an ArrayBuffer using a DataView. That buffer becomes a Blob with the image/x-icon type and a local download link. Your logo is never posted to an endpoint, which also means the tool works on an aeroplane once the page has loaded.
About this tool
- 1
Start from a square PNG
Crop to a square before uploading; anything else is stretched to fit the 32x32 frame.
- 2
Drop it in
A blue notice confirms the fixed output size before you convert, and the quality slider stays hidden because there is nothing lossy to tune.
- 3
Convert
The scale-down, the pixel read and the icon assembly all finish in a fraction of a second even for a large source.
- 4
Install it
Rename the download to favicon.ico and place it at your site root, or point a link rel=icon tag at it.
| Input and output | Takes .png only (image/png) and returns .ico with the image/x-icon type; any other extension is refused before decoding. |
|---|---|
| Conversion path | PNG to ICO runs in three steps: an <img> element hands the file to the browser's own PNG decoder; the pixels land on a 2D canvas in this tab; then the canvas is redrawn at 32x32 and an icon writer in the page emits the directory and the DIB. |
| Browser support | The PNG side decodes in every browser ever shipped, while writing the ICO needs nothing from the browser, the icon being assembled in the page. |
| Controls for this pair | No quality slider and no resize presets: PNG to ICO is pinned to 32x32 pixels, which the page says above the convert button. |
| Batch, caps and naming | Twenty PNG files per run at 500 MB each; one result downloads as a single ICO, several as converted-ico-files.zip, zipped by JSZip 3.10 in page memory. |
| Device ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized PNG fails before any ICO bytes exist. |
- Logos with thin strokes or lettering rarely survive 32 pixels - simplify to a single glyph or shape before converting rather than after.
- Test the result on both a light and a dark browser theme; a mark that relies on a white background disappears in dark tab bars.
- Modern sites often need only a PNG plus a web app manifest, so check whether an .ico is genuinely required before generating one.
- If Windows keeps showing the old icon after you replace the file, it is the icon cache, not the conversion - the bytes change every time the source does.
- Generating the classic /favicon.ico that older browsers and crawlers still request by default.
- Supplying a .ico to a Windows installer, shortcut or desktop application build that requires one.
- Turning a brand mark into an icon for an internal tool or dashboard without opening an image editor.
Related tools
View allNeed the opposite? Try ICO to PNG
Works well with this4
Other ICO tools12
Updated