# Changelog

## icoextract 0.3.0 (2026-06-06)

- Add support for Win16 NE EXEs via the nefile module (optional dependency)
- Add support for string resource IDs in addition to integers (previously string IDs were always read as raw numbers)
- `icolist` is now more verbose and shows each icon's image info (dimensions, size, and offsets)
- `exe_thumbnailer` now prefers icons with higher bit depths. In practice, this mostly affects older programs like
  Internet Explorer 6 and Windows 3.x system apps.
- **Notes for developers**:
  - `icoextract.IconExtractor()` is now a factory function instead of a class. By default it will autoselect the
    `IconExtractor` type based on the input executable format - this can be overridden using the `exe_type` parameter.
  - `list_group_icons()` now returns `(resource ID, group icon dir entry)` tuples instead of a simple ID and offset pair.
    - ResourceID is now a class type with `int()` and `str()` conversions, as these IDs can be either a string or a number.

## icoextract 0.2.0 (2025-06-02)

- Add `-i/--id` option to extract icons by resource ID
- Refactor / streamline extraction code
- Add new `IconNotFoundError` exception, raised when the requested icon index or resource ID does not exist
- cli: warn when extracting from Windows system DLLs for which icons have been moved to the SystemResources directory
- Bump minimum supported Python version to 3.9

## icoextract 0.1.6 (2025-03-02)

- exe-thumbnailer: add `--force-resize` convenience option
- exe-thumbnailer: fix handling of icons containing non-standard sizes like 192x192
- cli: warn when exporting images with a wrong extension (.jpg or .png). This aims to address a common source of confusion

## icoextract 0.1.5 (2024-04-28)

- Add `application/vnd.microsoft.portable-executable` to supported MIME types
- Bump minimum supported Python version to 3.8
- Add pdoc3 config, for autogenerated API docs

## icoextract 0.1.4 (2022-08-08)

- IconExtractor: support raw bytes as input, in addition to a filename
- Refresh function descriptions

## icoextract 0.1.3 (2022-06-12)

- Fix thumbnail resizing; use native 128x128 icons when available (GH-7)
- Clarify installation steps for thumbnailer
- setup.py: exclude `tests` from installed packages (GH-9)

## icoextract 0.1.2 (2020-12-22)

- Declare Pillow as an optional dependency (for icoextract-thumbnailer)
- Fix autodiscovery for tests

## icoextract 0.1.1 (2020-07-01)

- Refactor scripts to use setuptools entrypoints (adds Windows support)
- Raise an error when seeing invalid icon definitions

## icoextract 0.1.0 (2019-11-22)

- Initial release
