ImageToIcon is a small cross-platform tool for turning any image into a multi-size Windows .ico file. Drop in a single picture and it generates all the standard icon sizes at once, with clean Lanczos downscaling — no wizard, no upsell, no bundle of proprietary editors.
Every icon workflow used to mean juggling three tools: one to resize, one to compose, one to export. ImageToIcon collapses that into one window and one save button.
- Runs natively on Linux and Windows — same binary logic, same output
- Load any common raster format: PNG, JPEG, BMP, TIFF, GIF, WebP, TGA, QOI, PBM/PGM/PPM/PNM
- Automatic generation of every standard Windows icon size from 8 px up to 512 px
- Toggle individual sizes on or off before saving — the default preset matches the classic Windows application icon set (256, 128, 64, 48, 32, 24, 16)
- High-quality Lanczos-3 resampling for sharp results at every size
- Replace individual sizes manually — swap in a hand-tuned image for 16 px or 32 px and it gets resized in place to fit the slot
- Drag-and-drop support on the main window and on individual thumbnails
- CLI mode for batch conversion and scripting — process a folder of images in one call
- PNG-compressed frames inside the ICO container for smaller files, especially at 256 px and up
The latest release is available on the Releases page — no installation required, just extract and run the executable — ImageToIcon.exe on Windows, ImageToIcon on Linux.
ImageToIcon also runs headless. Any invocation containing --cli (or /cli) skips the UI and processes files directly:
ImageToIcon --cli --o=./out image1.png image2.jpg
ImageToIcon --cli --o=./out --sizes=16,32,48,256 logo.png
ImageToIcon --cli --o=./out --sizes=all logo.png| Option | Description |
|---|---|
--cli, /cli |
Run in CLI mode. |
--o=DIR, /o=DIR |
Output directory for the generated .ico files. |
--sizes=<list> |
Comma-separated list of icon sizes to generate. |
--sizes=all |
Generate every supported size. |
--help, /? |
Show usage information. |
- Any modern x64 Linux distribution
- No .NET runtime required — ships as a self-contained single-file executable
- Windows 10 or later (x64)
- No additional dependencies — ships as a self-contained single-file executable
# Debug build (default, linux-x64 only)
./build.sh
# Release build (linux-x64 and win-x64)
./build.sh Releasecd src/ImageToIcon
dotnet run