Skip to content

jlu5/icoextract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fcc7717 · Mar 2, 2025

History

85 Commits
Mar 2, 2025
Apr 28, 2024
Jul 7, 2024
Jul 7, 2024
Apr 28, 2024
Mar 2, 2025
Jun 3, 2024
Oct 14, 2019
Apr 28, 2024
Nov 22, 2023
Jul 6, 2020
Apr 28, 2024
May 19, 2022

Repository files navigation

icoextract

Build Status

icoextract is an icon extractor for Windows PE files (.exe/.dll/.mun), written in Python. 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

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] [-v] input output

Windows PE EXE 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 NUM  index 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