ico
Convert images to Windows icon format
TLDR
Display the wireframe of an icosahedron that changes its position every 0.1 seconds
Display a solid icosahedron with red faces on a blue background
Display the wireframe of a cube with size 100x100 that moves by +1+2 per frame
Display the inverted wireframe of an icosahedron with line width 10 using 5 threads
SYNOPSIS
ico [options...] [infile [outfile]]
PARAMETERS
-o, --output=file
Set output file (default: infile.ico)
-f, --force
Overwrite existing output file
-x, --extract
Extract PNG from ICO or EXE/DLL (default: create ICO)
-i, --icon=index
Extract specific icon index (default: 0)
-s, --size=size
Match icon size in pixels (16, 24, 32, 48, 64, 128, 256)
-V, --version
Print version and exit
-?, --help
Display usage help
DESCRIPTION
The ico command, part of the icoutils package, handles Microsoft Windows icon files (.ico). It packs one or more PNG images into a multi-resolution ICO file suitable for Windows icons or favicons. Each PNG should be square and typical icon sizes (16x16, 32x32, 48x48, etc.).
Alternatively, with --extract, it extracts icons from ICO files or Windows PE executables (EXE, DLL, OCX, CPL, SCR) into PNG format. It selects the best matching size or allows specification.
ICO files store multiple bitmap images of varying sizes in one file. ico automatically selects appropriate sizes and compresses as BMP (8bpp or 32bpp). Useful for icon design, theming, or reverse-engineering application icons. Does not support PNG-compressed icons from newer Windows versions.
CAVEATS
Supports only BMP-encoded icons; ignores PNG-encoded (Vista+). Square icons only; no CUR cursors. Limited color depths.
EXAMPLES
ico -o icon.ico 16.png 32.png 48.png packs PNGs into ICO.
ico -x app.exe -o icon.png extracts first icon.
ico -x --size=48 app.exe 48.png extracts 48x48 icon.
HISTORY
Developed by Markus Voelkel; first released in icoutils 0.1.0 (2003). Maintained for extracting icons from PE files on Unix-like systems.
SEE ALSO
icotool(1), wrestool(1), convert(1)


