Image to ICO: Differences, Edge Cases & Pitfalls

Pack one image into a multi-size ICO container with 16, 32, 48 and 256 pixel entries for browser tabs, desktop shortcuts and app icons.

ICO is the Windows icon container: one file can hold 16×16, 32×32, 48×48 and 256×256 together so the OS picks the best size per context — exactly why a multi-size favicon stays crisp. Packaging happens locally in your browser.

Format Differences

AspectPNG / JPEG (single size)ICO (multi-size container)
ContainerOne file, one sizeOne file, up to 255 sizes
System usageBrowser scales it; may look softOS picks the closest size to render
TransparencyPNG: 8-bit alphaSupported; large entries may embed PNG to keep alpha
Typical useWeb images, app assetsFavicons, desktop shortcuts, app icons
SizesOptimised per scenario16/32/48 required, 256 optional
Size on diskCompact per sizeAdds up, though small entries weigh little
Colour limitsNoneLegacy BMP entries have palette caveats on old systems
Browser supportUniversalUniversal (<link rel="icon">)

Edge Cases

  • Every entry must be square with a power-of-two size (16/32/48/64/128/256); non-square entries render incorrectly on some systems.
  • The 16x16 entry has to be redrawn: shrinking a 256x256 turns to mush, so simplify strokes and drop hairlines for that size.
  • Browsers cache favicons aggressively; after replacing, rename the file, add a version query, or verify in a private window.
  • A dark-stroked icon disappears in dark mode — give it a light backing or ship two versions.

Common Pitfalls

  • Shipping a single 256x256 blurs the tab icon and looks like poor generation quality.
  • After swapping the favicon nothing changes — it is the browser cache, not the file.
  • Converting a JPG (no alpha) to ICO puts a white box behind a round icon.
  • Scaling the big artwork straight down to 16x16 mushes thin lines into an unrecognisable blob.

Related Tools