icoextract
icoextract is an icon extractor library for Windows executables (.exe/.dll/.mun). It also includes a thumbnailer script (exe-thumbnailer) for Linux desktops.
This project is inspired by extract-icon-py, icoutils, and others.
icoextract aims to be:
- Lightweight
- Portable (cross-platform)
- Fast on large files
Installation
Dependencies
- Python 3.10+
- pefile
- Pillow - optional, for exe-thumbnailer
- nefile - optional, for Win16 / NE EXE support
Installing from source
You can install the project via pip: pip3 install icoextract[thumbnailer]
On Linux, you can activate the thumbnailer by copying exe-thumbnailer.thumbnailer into the thumbnailers directory:
/usr/local/share/thumbnailers/if you installedicoextractglobally~/.local/share/thumbnailersif you installedicoextractfor your user only
The thumbnailer should work with any file manager that implements the Freedesktop Thumbnails Standard: this includes Nautilus, Caja, Nemo, Thunar (when Tumbler is installed), and PCManFM. KDE / Dolphin uses a different architecture and is not supported here.
Distribution packages
You can install icoextract from any of these distribution repositories:
Usage
icoextract ships icoextract and icolist scripts to extract and list icon resources inside a file.
Note: recent versions of Windows (Windows 10 1903+) have moved icons from system libraries (shell32.dll, etc.) into a new C:\Windows\SystemResources folder. icoextract can extract these .mun files natively, but the .dlls themselves no longer contain icons.
For API docs, see https://projects.jlu5.com/icoextract.html
usage: icoextract [-h] [-V] [-n NUM] [-i ID] [-v] input output
Windows executable icon extractor.
positional arguments:
input input filename (.exe/.dll/.mun)
output output filename (.ico)
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-n, --num NUM index of icon to extract
-i, --id ID resource ID of icon to extract
-v, --verbose enables debug logging
usage: icolist [-h] [-V] [-v] input
Lists group icons present in a program.
positional arguments:
input input filename
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-v, --verbose enables debug logging
Release files for icoextract 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| icoextract-0.3.0.tar.gz | 15.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icoextract-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.2 kB
Release files / icoextract-0.3.0.tar.gz
| Download URL | icoextract-0.3.0.tar.gz |
|---|---|
| Size | 15.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fb4584671662e61814a48e3f2fed30d083a1aede68947a0cb07ddb7f59238ec
|
|
BLAKE2b-256 checksum How to use checksums |
aeed047f86acc1dc9b3b04f7ddc01be520b45e71fb4ec40d782f611125553814
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / icoextract-0.3.0-py3-none-any.whl
| Download URL | icoextract-0.3.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e5604a2b25da6a7ffbb21144fc3a4851375dd0773a18e11b994c69790688e39
|
|
BLAKE2b-256 checksum How to use checksums |
11a93a289916ced3d658cc1f5f67a6be80af0c6acb0a77998d077a3f567bb816
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|