ICO to PNG Converter – Free, Instant, No Upload

Convert ICO to PNG instantly in your browser — no upload, no signup, transparency preserved. Free tool, works on any device.

Turn any ICO file into a crisp PNG in seconds

Drop your .ico file into the tool above and you get a clean PNG image back instantly — no account, no upload, no waiting. ICO files are great for Windows icons, but almost nothing else reads them natively. Converting to PNG gives you a format every browser, design app, and operating system understands.

How to convert ICO to PNG (3 steps)

  1. Choose your ICO file — click the upload area or drag and drop the file straight onto it.
  2. Wait one moment — the conversion runs entirely in your browser using the HTML5 canvas. No server involved.
  3. Download your PNG — click the download button and you have a ready-to-use PNG file.

Your file never leaves your device. Nothing is uploaded anywhere, so sensitive icons (like a company logo you haven't released yet) stay private.

Worked example: converting a favicon ICO to PNG

Say you have favicon.ico — the tiny icon file websites use. You want to use the logo inside it as a PNG for a presentation or design file.

  • Input: favicon.ico — a 32×32 pixel icon, multi-layer ICO format
  • Output: favicon.png — a 32×32 PNG with full transparency preserved, readable by Figma, Photoshop, Canva, or any web browser

ICO files can actually contain several sizes bundled together (16px, 32px, 48px, 256px). The converter extracts the largest available layer and exports it as PNG. If you need a specific size, resize the PNG afterwards with any image editor.

How to convert ICO to PNG in code

Working in a script or automation pipeline? Here are two minimal, copy-pasteable snippets.

Python (Pillow)

Install Pillow first: pip install Pillow

from PIL import Image

img = Image.open('favicon.ico')
# sizes contains all layers; pick the largest
img.save('favicon.png', format='PNG')

Pillow automatically picks the largest embedded layer when you call save() on an ICO. The alpha channel (transparency) is preserved in the output PNG.

Node.js (sharp)

Install sharp: npm install sharp

const sharp = require('sharp');

sharp('favicon.ico')
  .png()
  .toFile('favicon.png')
  .then(() => console.log('Done!'))
  .catch(err => console.error(err));

Sharp uses the libvips library under the hood and handles the ICO container format well. Both snippets produce a PNG that keeps any transparent areas intact.

How it works under the hood

Your browser reads the ICO file using the HTML5 File API and draws the image onto an off-screen canvas element. The canvas then exports that pixel data as a PNG using canvas.toDataURL('image/png') or canvas.toBlob(). The PNG is handed back to you as a download — no server call is ever made. You can verify this in your browser's Network tab: you'll see zero image upload requests.

The ICO format is defined in Microsoft's icon guidelines. It's essentially a container that bundles multiple bitmap sizes. PNG, on the other hand, is a lossless, widely-supported format defined by the W3C PNG specification.

When to convert ICO to PNG — and when not to

SituationUse ICO to PNG?Why
Editing the icon in Figma, Sketch, or Photoshop✅ YesThose apps open PNG natively, not ICO
Using the logo in a presentation or document✅ YesPNG is universally supported
Adding to a website as a favicon❌ Keep ICOBrowsers still prefer .ico for the favicon link element
Publishing a Windows app icon❌ Keep ICOWindows .exe and .dll files embed ICO directly
Converting for use in a React or Vue component✅ YesImport PNG as an asset; ICO is not a standard web image type

Privacy and your files

Because everything runs inside your browser, your ICO file is never uploaded to any server. Close the tab and the image data is gone. This matters if you're working with unreleased brand assets or any proprietary imagery.

When you're done here, you might also find these handy for other tasks: JSON Beautifier — Format, Validate & Minify JSON Online or JSON Validator — Check & Fix JSON Errors Online (Free).

Bottom line: if you have an ICO and need a PNG right now, use the converter above — it's instant, free, and completely private.

Frequently asked questions

Does my ICO file get uploaded to a server?+
No. The conversion happens entirely inside your browser using the HTML5 canvas API. Your file never leaves your device, so there's nothing stored or transmitted.
Will the PNG keep the transparent background from the ICO?+
Yes. PNG supports full alpha-channel transparency, the same as ICO. Transparent areas in your icon come through cleanly — no white or black fill is added.
ICO files have multiple sizes inside them — which one do I get?+
The converter extracts the largest available layer. If your ICO contains 16px, 32px, and 256px versions, you'll get the 256px PNG. You can then resize it to whatever you need.
How do I convert ICO to PNG in Python?+
Use the Pillow library: pip install Pillow, then Image.open('icon.ico').save('icon.png'). Pillow handles the ICO container and preserves transparency automatically.
How do I convert ICO to PNG in Node.js?+
Install the sharp package (npm install sharp) and call sharp('icon.ico').png().toFile('icon.png'). Sharp is fast and handles the ICO format without extra dependencies.
Is this tool free? Do I need to sign up?+
Completely free, and no account is needed. Just drop in your ICO file and download the PNG — that's it.
Can I use the PNG as a website favicon instead of an ICO?+
You can link a PNG as a favicon using <link rel='icon' type='image/png' href='favicon.png'> and modern browsers will pick it up. That said, an ICO file with multiple sizes still gives the best compatibility across older browsers and Windows Explorer thumbnails.
What's the difference between ICO and PNG?+
ICO is a Windows-specific container that bundles several icon sizes into one file. PNG is a single-image, lossless format supported everywhere. Converting to PNG makes the image usable in design tools, documents, and web projects that don't accept ICO.