LinuxCommandLibrary

ico

Convert images to Windows icon format

TLDR

Display the wireframe of an icosahedron that changes its position every 0.1 seconds

$ ico -sleep [0.1]
copy

Display a solid icosahedron with red faces on a blue background
$ ico -faces -noedges -colors [red] -bg [blue]
copy

Display the wireframe of a cube with size 100x100 that moves by +1+2 per frame
$ ico -obj [cube] -size [100x100] -delta [+1+2]
copy

Display the inverted wireframe of an icosahedron with line width 10 using 5 threads
$ ico -i -lw [10] -threads [5]
copy

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)

Copied to clipboard