Skip to main content

PNG to ICO converter

Convert PNG images to ICO format

No watermarkFree & unlimited
All processing happens in your browser. No data is sent to any server.

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

Key facts about PNG to ICO converter
Output geometryOne image, 32x32 pixels, always. The resize presets are hidden for this target because the size is not negotiable.
Exact file length4,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 channelKept. Pixels are written as 32-bit BGRA, so a transparent PNG corner stays transparent in the icon.
Pixel storageAn uncompressed DIB written bottom-up, not the PNG-compressed icon variant that Windows Vista introduced.
ScalingYour image is drawn into a 32x32 canvas in one step, so fine detail is smoothed away rather than redrawn by hand.
Aspect ratioNot preserved - a non-square PNG is squashed into the square, so crop it first if the proportions matter.
Sizes not includedNo 16x16, 48x48 or 256x256 entry. Systems that want a sharper icon will upscale the 32x32 image.
Where it worksA favicon.ico at a site root, a Windows shortcut or application icon, and desktop software that asks for .ico specifically.
Where it does notmacOS 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. 1

    Start from a square PNG

    Crop to a square before uploading; anything else is stretched to fit the 32x32 frame.

  2. 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. 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. 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.

Specs & compatibility
Input and outputTakes .png only (image/png) and returns .ico with the image/x-icon type; any other extension is refused before decoding.
Conversion pathPNG 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 supportThe 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 pairNo 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 namingTwenty 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 ceilingThe 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.
No - the output is fixed at 32x32 and the resize presets are deliberately hidden on this page. 32 pixels is the size Windows and browsers request most often and it scales down to 16 acceptably. If you need a multi-resolution .ico with several entries in one file, this converter does not build one.
Yes. Pixels are stored as 32-bit BGRA with the alpha byte copied straight from the canvas, so transparent and semi-transparent areas are preserved. That is why a PNG makes a better icon source than a JPG, which arrives with a white rectangle already baked in.
Because an uncompressed icon of fixed dimensions has a fixed length. Thirty-two by thirty-two pixels at four bytes each is 4,096 bytes, and the three headers add 62 more. Nothing about your image can change that number - a blank square and a detailed logo both produce 4,158 bytes.
Redraw rather than reconvert. The browser's smooth downscale averages detail that simply has no room at this size, so thin outlines turn grey. Start from a simplified version of the mark - a single letter, a silhouette, fewer strokes - and it will read clearly in the tab bar.
For shortcuts and small application icons, yes - it is a standard uncompressed 32-bit icon that Explorer reads. Where it falls short is large-icon views and high-DPI displays, which would pull a 256x256 entry from a multi-size file and instead have to scale this one up.
View all

Need the opposite? Try ICO to PNG

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy