How to Make an ICO File: A Complete Guide to Creating Icons

ICO files are the small image format Windows uses for application icons, shortcut icons, and favicon images on websites. If you've ever wanted to create a custom icon for a program, folder, or website, making an ICO file is the skill you need — and it's more accessible than most people expect.

What Is an ICO File?

An ICO file is a container format that stores one or more images at different sizes and color depths within a single file. Unlike a standard PNG or JPEG, an ICO file can hold multiple resolutions simultaneously — commonly 16×16, 32×32, 48×48, and 256×256 pixels — so Windows can display the right size depending on context (taskbar, desktop, file explorer, etc.).

This multi-resolution structure is what makes ICO files different from ordinary images. A regular PNG at 256×256 will look blurry scaled down to 16 pixels. A properly built ICO file contains a purpose-drawn or optimized version at each size, keeping icons sharp at every display scale.

The Core Methods for Creating an ICO File

1. Convert an Existing Image

The fastest path to an ICO file is converting an image you already have — a PNG with a transparent background works best. Several tools handle this conversion:

  • Online converters (such as ICO Convert, Convertio, or favicon.io) let you upload a PNG and download an ICO without installing anything. Most allow you to select which sizes to embed.
  • Image editors with ICO export — GIMP (free, open-source) natively supports saving files in ICO format. You design your image, scale it to the sizes you need, and export directly as .ico.
  • Dedicated icon editors like IcoFX, Axialis IconWorkshop, or Greenfish Icon Editor Pro are built specifically for ICO creation and give you precise control over each embedded size.

2. Build the Icon from Scratch

If you want full control over how the icon looks at each resolution, building it from scratch in a dedicated icon editor gives the best results. Small icons at 16×16 pixels often need pixel-level adjustments — details that look fine at 256px become muddy noise at smaller sizes without manual cleanup.

The workflow typically looks like this:

  1. Design the main image at the largest size (256×256 or 512×512).
  2. Create downscaled versions at 48×48, 32×32, and 16×16.
  3. Manually sharpen edges and simplify details at smaller sizes.
  4. Combine all sizes into a single ICO container on export.

3. Use Command-Line or Developer Tools

Developers working in code-heavy environments often use tools like ImageMagick, which can batch-convert and combine multiple PNG files into a single ICO from the terminal:

magick icon-256.png icon-48.png icon-32.png icon-16.png output.ico 

This approach suits automated workflows, CI/CD pipelines, or situations where you're generating icons programmatically. It requires some comfort with the command line but offers precise control and repeatability.

Key Factors That Affect Your ICO File Quality 🎨

Not all ICO files are created equal. Several variables determine how well your icon will look and function:

FactorWhy It Matters
Source image qualityA high-resolution PNG with transparency produces cleaner results than a compressed JPEG
Color depthICO supports 1-bit, 4-bit, 8-bit, and 32-bit (RGBA) — 32-bit with alpha transparency is standard for modern use
Sizes includedMissing sizes force Windows to scale up or down, reducing sharpness
Background transparencyIcons without alpha transparency look wrong on colored backgrounds
File sizeEmbedding too many large sizes inflates the ICO file unnecessarily

ICO Files for Favicons vs. Desktop Icons

The use case changes what a good ICO file looks like:

For website favicons, you typically need 16×16 and 32×32 embedded at minimum. Browsers read the favicon from your site's root directory or a <link> tag in the HTML. Many modern sites now supplement ICO favicons with PNG and SVG alternatives for broader browser support, but ICO remains the most universally compatible format for this purpose.

For Windows application or shortcut icons, you'll want a fuller set of sizes — 16, 32, 48, and 256 pixels is a common standard. The 256×256 size is stored as a compressed PNG inside the ICO container in modern Windows icon files, which keeps file sizes manageable while still looking crisp on high-DPI displays.

Common Mistakes to Avoid

  • Converting a low-resolution source image — scaling a 64×64 image up to 256×256 before converting produces a blurry result. Always start with the largest version you have.
  • Skipping transparency — icons with a white or colored background look out of place in Windows Explorer and on websites. Use a PNG with an alpha (transparent) background as your source.
  • Only embedding one size — a single 256×256 image in an ICO file won't look sharp in taskbar or small icon views. Include the full size range for your intended environment.
  • Using JPEG as a source — JPEG compression artifacts become very visible at small icon sizes. PNG is always preferable for source material.

How Skill Level and Tools Shape the Process 🖥️

The method that makes sense depends heavily on your technical comfort and goals. Someone making a single favicon for a personal website has very different needs from a developer building icons for a commercial application or a designer creating a full icon set for a software suite.

Online converters remove almost all friction but give you less control over individual sizes and may compress images in ways that aren't ideal. Dedicated icon editors offer the most precision but come with a learning curve. Command-line tools like ImageMagick are powerful and scriptable but assume familiarity with terminal commands and file paths.

The quality of the final ICO file also ties directly to how much care goes into the source artwork. A thoughtfully designed icon that's been manually optimized at each size will always outperform a quick automated conversion of a photograph or complex illustration — particularly at the smaller sizes where most icons actually spend their time being seen.

Your specific outcome depends on the source material you're working with, the environment where the icon will appear, and how much control you want over the final result at each display size.