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
Metadata
Release files for icoextract 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| icoextract-0.3.1.tar.gz | 15.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icoextract-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.2 kB
Release files / icoextract-0.3.1.tar.gz
| Download URL | icoextract-0.3.1.tar.gz |
|---|---|
| Size | 15.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a50ecb0d98aa19fc51e4966b1e0c7b024d0c9128d6e245f794c1713e6f82dbf6
|
|
BLAKE2b-256 checksum How to use checksums |
c41da882627b0b68967b98141b48e255f95da85317b9f02ca3d7459c62f3c677
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Release files / icoextract-0.3.1-py3-none-any.whl
| Download URL | icoextract-0.3.1-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c8dfe6947a904a2446c671059b8050beeb545958cb71b07445c2a651229c900
|
|
BLAKE2b-256 checksum How to use checksums |
8889fd63aa1d5c97ee2121c14287e78be339dea12b4138b61f0f3c98d562a105
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Security for icoextract 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.