How to Create an ICO File: A Complete Guide to Custom Icons
An ICO file is the standard icon format used by Windows — it's what gives your desktop shortcuts, executable files, and folders their recognizable images. Whether you're a developer building a Windows application, a designer crafting a custom UI, or someone who just wants a personalized folder icon, knowing how to create an ICO file is a genuinely useful skill.
What Is an ICO File, Exactly?
An ICO file isn't simply a small image saved with a different extension. It's a container format — a single file that can hold multiple image sizes and color depths simultaneously. Windows reads the file and selects the most appropriate size depending on where the icon is being displayed.
Common sizes stored inside a single ICO file include:
| Size (pixels) | Typical Use |
|---|---|
| 16×16 | Taskbar, small list views |
| 32×32 | Standard desktop icons |
| 48×48 | Large icon view in File Explorer |
| 64×64 | High-DPI displays, some UI contexts |
| 128×128 | Preview thumbnails |
| 256×256 | High-resolution displays, modern Windows |
This multi-resolution structure is what separates ICO from a plain PNG or JPEG. A PNG scaled down from 256px often looks blurry or poorly detailed at 16px — ICO lets you embed a hand-optimized version for every size.
Method 1: Convert an Existing Image to ICO
The most straightforward path is converting an image you already have — a PNG, JPG, or SVG — into the ICO format.
Online converters like convertio.co, icoconvert.com, or favicon.io let you upload an image and download an ICO file within seconds. Most allow you to choose which sizes to include. This works well for simple use cases, but you're handing your image to a third-party server, which matters if the artwork is sensitive or proprietary.
Key considerations when converting:
- Start with a square image — ICO files are always square, so non-square images will be cropped or distorted
- Use PNG as your source format when possible — it supports transparency, which most icons require
- Choose 256×256 or larger as your source to ensure clean downscaling
- Always include the 16×16 and 32×32 sizes at minimum for Windows compatibility
Method 2: Use Dedicated Icon Editors 🎨
If you need precise control — especially over how the icon looks at small sizes — dedicated icon editors give you pixel-level editing for each size variant separately.
IcoFX (Windows) is a well-regarded paid option with full support for multi-resolution ICO files, transparency, and visual editing at every size.
Greenfish Icon Editor Pro is a free alternative with solid feature coverage including layer support and batch export.
Axialis IconWorkshop is aimed at professional developers and designers who need to produce icons at scale across multiple formats.
These tools let you draw and refine each size independently, which matters because an icon that looks great at 256×256 often needs deliberate simplification to read clearly at 16×16.
Method 3: Export from Design Software
Many professional design applications can export ICO files directly or with a plugin:
Adobe Photoshop doesn't natively export ICO, but the free ICOFormat plugin adds this capability. You'd design your icon as a layered PSD, flatten or merge layers, then export using the plugin.
GIMP (free, cross-platform) supports ICO export natively. Go to File → Export As, type a filename ending in .ico, and GIMP will prompt you to select which sizes to include. This is one of the most accessible no-cost options for users already comfortable with image editing.
Inkscape (free vector editor) can export SVGs to various raster formats. You'd export PNG at multiple sizes first, then combine them into an ICO using a secondary tool.
Figma and Sketch don't natively export ICO but can export PNGs at multiple resolutions, which you then combine using a converter or dedicated editor.
Method 4: Command-Line Tools for Developers
If you're building a workflow or need to automate ICO creation — common in software development pipelines — command-line tools are the practical choice.
ImageMagick is the most widely used option. A single command can resize a PNG to multiple dimensions and bundle them into one ICO file:
magick input.png -define icon:auto-resize=256,128,64,48,32,16 output.ico electron-icon-maker, png2ico, and similar Node.js or Python utilities exist specifically for developers generating application icons programmatically. These integrate cleanly into build scripts and CI/CD pipelines.
What Affects ICO File Quality
Even with the right tool, several variables shape how good your final icon looks: 🖥️
- Source image quality — a low-resolution or heavily compressed source image produces poor results at every size
- Transparency handling — Windows icons almost always use transparency; your source must support an alpha channel (PNG does, JPEG doesn't)
- Color depth — modern ICO files typically use 32-bit color (8 bits per channel plus alpha); older 8-bit or 4-bit options exist for legacy compatibility but are rarely needed today
- Number of included sizes — more sizes means better rendering across different Windows contexts, but also a larger file
- Manual optimization at small sizes — automated downscaling rarely matches the clarity of a hand-tuned 16×16 version
ICO vs. Favicon: An Important Distinction
These terms often get confused. A favicon is the small icon shown in browser tabs and bookmarks — it used to require ICO format, but modern browsers now accept PNG and SVG for this purpose. If you're creating an icon specifically for a website's tab, a 32×32 or 48×48 PNG is often sufficient. If you need a Windows application icon or want broad browser compatibility including older versions of Internet Explorer, ICO remains the reliable standard.
Which method fits your situation depends heavily on your starting point — whether you have existing artwork, what software you already use, your comfort with command-line tools, and whether this is a one-time task or part of a repeatable build process. Each path produces a valid ICO file; the differences show up in workflow, flexibility, and how much control you have over the final result at each individual size.