The icoutils are a set of command-line programs for extracting and converting images in Microsoft Windows(R) icon and cursor files. These files usually have the extension
.cur, but they can also be embedded in executables and libraries (
The icotool program converts icon and cursor files into a set of PNG images. (Each icon/cursor file may contain multiple images, usually of different sizes and with different number of colors.) Icotool can also create icon/cursor files from PNG images.
The wrestool program can extract both icons and cursors from 32-bit ("PE") and 16-bit ("NE") executables and libraries. It writes
.cur files that can be used on Windows(R) operating systems as well. Other types of embedded resourced can be extracted, however only in raw form - icons and cursors require additional conversion before they can be saved as icon and cursor files.
The extresso script automates the tasks of extracting and converting icons. This is done with the help of of special resource scripts. The purpose of these scripts are to give names to the icons in the executables and libraries.
The icoutils were designed to compile and run on modern POSIX compatible systems such as Linux.
Windows is a registered trademark of Microsoft Corporation in the United States and other countries.
Release history and list of changes for icoutils can be found in the NEWS file in the source code. This file is also available online:
The latest version of icoutils is 0.32.2, which was released on 2017-10-31:
These files, as well as older versions, are available in the icoutils file area.
icoutils is mentioned on the following pages:
The icoutils are copyright (C) 1998 Oskar Liljeblad.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The source code of this project may contain files from other projects, and files generated by other projects, including:
Such files are licensed under the terms of the GNU General Public License or a license compatible with the GNU GPL (as listed on http://www.gnu.org/licenses/license-list.html). See each file for copyright details.
The following programs are required to build icoutils:
GNU C Compiler (gcc), version 2.95 or later
The icoutils use some features specific to gcc 2.95 and later (such as macros with variable number of arguments). The GNU C Compiler is part of the GNU Compiler Collection which can be downloaded from http://gcc.gnu.org/. In Debian and many other distributions the package is called
make, a modern implementation
The make program is required to build icoutils. icoutils uses Makefiles generated by GNU Automake. The recommended make is GNU Make which can be downloaded from http://www.gnu.org/software/make/. In Debian and many other distributions the package is called
The following libraries are required to run icoutils:
libpng, 1.0.0 or later.
The icotool program uses libpng to read and write PNG images. Libpng can be downloaded from http://www.libpng.org/pub/png/libpng.html. In Debian, the libpng package is called
libpng3 in stable). The
libpng-dev in stable) package is required when building the icoutils.
Libpng is licensed under the terms of the libpng license. This license is almost identical to the ZLib license, which is compatible with GNU GPL according to http://www.gnu.org/philosophy/license-list.html. Libpng itself depends on ZLib.
The following programs and libraries are required to run the extresso and genresscript programs which are optional:
Perl, probably 5.6 or later
Perl can be downloaded from http://www.perl.org/. Perl is licensed under the terms of either the GNU General Public License or the Artistic license (the choice is yours).
libwww-perl, probably 5.64 or later
The extresso perl script uses libwww-perl for fetching files. Libwww-perl can be downloaded from http://lwp.linpro.no/lwp/. Libwww-perl is licensed under the same terms as Perl itself. This also applies to all modules which libwww-perl depends on.
The icoutils programs use GNU Autoconf and GNU Automake. This means you usually just have to do
to compile the program. If you want to install the necessary files, run the following as as root:
For more information regarding configure and make, see the
See the manual pages or the documentation in the doc subdirectory of the source code tarball.
Web site and file area for microdc is hosted on Savannah:
The current maintainer of icoutils and this document, Frank Richter, can be reached via email:
Please send bug reports, suggestions, ideas or comments in general to me.
icoutils was originally created by Oskar Liljeblad.
Aside from not compiling on all systems, wrestool MAY not work on non-x86 machines due to endian-ness. However, icotool should work on little as well as big endian machines.
There is no relocation support for 16-bit (NE) binaries. If you find a massive deposit of such binaries, let me know.