Skip to content

jlu5/icoextract

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

icoextract

Build Status

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

icoextract is packaged in these repositories:

Usage

icoextract ships icoextract and icolist scripts to extract and list icon resources in an executable:

usage: icoextract [-h] [-V] [-n NUM] [-v] input output

Windows PE EXE icon extractor.

positional arguments:
  input              input filename
  output             output filename

optional arguments:
  -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

optional arguments:
  -h, --help     show this help message and exit
  -V, --version  show program's version number and exit
  -v, --verbose  enables debug logging