Skip to main content

icoextract

Build Status Packaging status

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 installed icoextract globally
  • ~/.local/share/thumbnailers if you installed icoextract for 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:

Packaging status

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)

Source distribution for icoextract 0.3.1
File Size Uploaded Provenance
icoextract-0.3.1.tar.gz 15.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for icoextract 0.3.1
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page