JPG to ICO — make a Windows icon in your browser
Convert a JPG photo into a Windows .ico icon with several sizes packed into
one file. A .ico is a small container that holds multiple resolutions, so
Windows and browsers can pick the sharpest version for a tab favicon, taskbar
icon or desktop shortcut. This tool builds that file for you with no upload and
no signup.
How it works
For each size you tick, your JPG is drawn onto a square <canvas> at that pixel
size and encoded as a PNG with canvas.toBlob. The PNG payloads are then wrapped
by hand into the ICO container format: a 6-byte ICONDIR header, one 16-byte
ICONDIRENTRY per image (recording its size, bit depth and byte offset), then
the PNG data itself. Modern Windows (Vista and later) reads PNG payloads inside
an .ico directly, so the result works everywhere a favicon or icon is expected.
| Setting | Value |
|---|---|
| Available sizes | 16, 32, 48, 64, 128, 256 px |
| Default sizes | 16, 32, 48 px |
| Payload format | PNG inside the ICO container |
| Transparency | None (JPG has no alpha channel) |
Which sizes to include
Different contexts use different icon sizes, and embedding the right set in one file means no scaling artefacts in any context:
| Size | Used for |
|---|---|
| 16×16 | Browser tab favicon, Explorer list view |
| 32×32 | Small desktop icon, taskbar at standard DPI |
| 48×48 | Standard desktop icon, Windows Explorer medium icons |
| 64×64 | High-DPI taskbar, some app launchers |
| 128×128 | macOS-style large icon, app store thumbnails |
| 256×256 | High-DPI desktop shortcut, modern app icon |
For a website favicon, 16, 32, and 48 px is the standard set that covers all browsers. For a Windows desktop application icon, including 128 or 256 px gives sharp results on high-resolution (HiDPI) displays.
Why the ICO format uses multiple sizes
Operating systems and browsers do not scale a single icon image up or down; they select the closest embedded size and use it at 1:1. An icon file containing only a 16×16 image looks blurry when Windows displays it at 48×48 on a standard desktop. An icon with only 256×256 gets downsampled to 16×16 for the tab favicon, which is also imprecise. Embedding several sizes in one .ico file is what lets the OS pick the sharpest match for each rendering context without scaling.
Example
Pick 16, 32 and 48px and drop a 512×512 JPG. The tool renders the photo at each
of the three sizes, encodes them as PNG, and bundles them into a single
icon.ico. Windows then shows the 16px version in a list, the 32px version on
the taskbar and the 48px version on the desktop — all from one file.
Because JPG has no transparency, the icon keeps a solid background. If you need a transparent or shaped icon, start with a PNG file instead. Everything runs locally in your browser — your images are never uploaded.