ICO Viewer
Inspect .ico files frame by frame: sizes, bit depths and previews, parsed in your browser.
No frames parsed yet.
How to use it
- Pick a .ico file - favicons, installer icons and Windows .ico exports all work.
- Each frame inside the file appears as a card with its size, bit depth and a preview.
- Click Download on a card to save that frame as a .png or .bmp file.
- Click Clear to drop the file and revoke the local previews.
Common use cases
- Favicon audits - check which sizes a site actually ships: 16, 32, 48 or a large 256 tile.
- Extracting one size - pull the 32x32 frame out of a multi-resolution icon for a README or docs.
- Debugging icon packages - confirm a build step produced all the sizes you expect.
- Design handoff - hand designers the exact frames instead of a scaled screenshot.
Why it stays private
The file is read with the File API and parsed in memory: the 6-byte directory header plus 16-byte entries per frame. PNG frames are cut out directly and BMP frames get a file header prepended, all locally. Nothing is uploaded.
FAQ
Q: Why do some frames show 256 when the icon looks smaller? A: The ICO format stores 0 in the directory entry to mean 256 pixels. If the actual bitmap is smaller, the preview shows the true image while the label reports what the header declares.
Q: Are macOS .icns files supported? A: No. .icns uses a different container format. Convert to .ico or extract the PNGs first, then inspect them here.
Q: A frame fails to display - what happened? A: ICO files can contain exotic BMP variants. Frames that decode as PNG or standard BMP are shown; anything else is skipped so the remaining frames still render.
Your data stays on this device
ICO Viewer runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.