Resize PNG images to standard favicon dimensions for ICO favicons. Generate 16x16, 32x32, and 48x48 sizes. Runs locally in your browser.
Drop PNG file here
or click to browse · paste from clipboard (Ctrl/⌘+V)
PNG, JPG, WebP, AVIF, GIF, BMP, SVG, HEIC, ICO · up to 20 files
True ICO file generation requires writing a binary container format that the Canvas API does not support. Instead, this tool focuses on what the Canvas API does well: resizing your PNG to the standard favicon dimensions that modern browsers accept directly.
Modern favicon deployment uses PNG files declared with <link> tags, making the ICO container optional for most projects.
The resize controls open by default on this page so you can immediately set your target dimensions.
Not every guide agrees on favicon sizes, but here is a practical breakdown based on where each size is actually used:
| Size | Where it appears |
|---|---|
| 16x16 | Browser tab icon (the classic favicon) |
| 32x32 | Browser tab on high-DPI, Windows taskbar |
| 48x48 | Windows desktop shortcut |
| 180x180 | Apple touch icon (iOS home screen) |
| 192x192 | Android Chrome, PWA manifest |
| 512x512 | PWA splash screen, Google search results |
For a minimal setup that covers most cases:
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
Begin with a PNG at 512x512 or larger. Scaling down from a high-resolution source produces clean results. Scaling up from a 16x16 icon produces blurry output. If your logo has fine detail, consider simplifying it for small sizes rather than relying on automatic downscaling.
If your icon works as vector art, an SVG favicon is the best option:
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
SVG favicons scale to any size without generating multiple files. They can even respond to the user’s color scheme:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
path { fill: #333; }
@media (prefers-color-scheme: dark) {
path { fill: #fff; }
}
</style>
<path d="M16 2 L2 30 L30 30 Z"/>
</svg>
Include a PNG fallback for Safari, which does not support SVG favicons.
Despite modern alternatives, placing a favicon.ico file at the site root is still useful. Browsers request /favicon.ico by default when no icon link tag is present. Some tools (RSS readers, bookmarklets, enterprise proxies) only look for favicon.ico. If you need a true ICO file, use a dedicated ICO encoder that can bundle multiple sizes into the container format.
Progressive Web Apps require icons declared in manifest.json:
{
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}
Generate these sizes from your source PNG and reference them in the manifest. The 512x512 version is used for install prompts and splash screens on Android.
A 16x16 icon has very few pixels to work with. If your design has thin lines, they may disappear or become blurry at 16x16. Some designers create hand-tuned versions specifically for 16x16 and 32x32.
Favicons appear on various background colors (light tabs, dark tabs, bookmark bars). Test your icon on both light and dark backgrounds.
Text is unreadable at 16x16. A letterform or simple symbol works better than a detailed logo at favicon sizes.
For extracting images from existing ICO files, see ICO to PNG. For embedding images as data URIs, see the Base64 Encoder. For other format conversions, return to the Image Converter.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.