Load Amiga .info files
Project description
amigainfo
A Python library for loading and converting Amiga .info icon files.
Supports all four generations of the format:
- Classic (OS 1.x-3.1) — planar bitmap icons
- NewIcons — higher color icons encoded in ToolTypes strings
- GlowIcons / ColorIcons (OS 3.5+) — IFF FORM ICON with RLE compression
- ARGB (OS4) — 32-bit icons with zlib-compressed ARGB data
Install
pip install amigainfo
Library usage
from amigainfo import load, to_image
# Load and render the best available image
obj = load(open("MyApp.info", "rb").read())
img = to_image(obj)
img.save("MyApp.png")
# Access metadata
print(obj.type) # IconType.TOOL
print(obj.default_tool) # "SYS:Utilities/MultiView"
print(obj.tooltypes) # ["PUBSCREEN=Workbench", ...]
# Render a specific format or state
from amigainfo import classic_to_image, WB_1X
img = classic_to_image(obj.classic.normal, palette=WB_1X)
img = to_image(obj, selected=True)
CLI
Convert .info files to standard image formats:
# Convert to PNG (picks the best available image format)
amigainfo icon.info icon.png
# Output format follows the file extension
amigainfo icon.info icon.webp
# Batch convert (outputs alongside inputs as .png)
amigainfo *.info
# Use the selected (highlighted) icon state
amigainfo --selected icon.info icon.png
# Extract a specific format layer
amigainfo --format classic icon.info icon.png
amigainfo --format newicon icon.info icon.png
amigainfo --format coloricon icon.info icon.png
amigainfo --format argb icon.info icon.png
# Override the palette for classic icons
amigainfo --palette wb1x icon.info icon.png
Inspect metadata:
# Human-readable summary
amigainfo --info icon.info
# JSON dump
amigainfo --json icon.info
Format overview
Amiga .info files are icon files used by AmigaOS Workbench. The format evolved
over several OS generations, with each new format layered on top of the previous
for backward compatibility.
Every standard .info file starts with a DiskObject header (0xE310 magic)
containing a Gadget structure, icon metadata (type, position, tooltypes, default
tool), and planar bitmap image data. Later formats append additional image data:
| Format | Era | Image type | Palette |
|---|---|---|---|
| Classic | OS 1.x-3.1 | Planar bitmaps (1-8 bitplanes) | System Workbench palette |
| NewIcons | Mid-90s | Chunky pixels encoded in ToolTypes | Embedded in data |
| GlowIcons | OS 3.5+ | RLE-compressed indexed color (IFF) | Embedded in data |
| ARGB | OS 4 | zlib-compressed 32-bit ARGB | Full color |
Each file can contain up to two images: normal and selected (highlighted) states.
Data model
The load() function returns a DiskObject with all parsed data accessible:
DiskObject
├── magic, version, type
├── gadget (Gadget: dimensions, flags, user_data)
├── default_tool, tool_window, tooltypes
├── current_x, current_y, stack_size
├── drawer_data (DrawerData: window state, OS2+ display flags)
├── classic (ClassicImages: normal/selected planar bitmaps)
├── newicon (NewIconImages: normal/selected palette+pixels)
├── coloricon (ColorIconImages: FACE chunk + normal/selected IMAG)
└── argb (ARGBImages: normal/selected 32-bit image data)
Default palettes
Classic icons don't store palette data — they rely on the system Workbench palette. Two palettes are included:
WB_1X— OS 1.x, 4 colors (blue, white, black, orange)WB_2X— OS 2.x/3.x, 8 colors (the standard Workbench palette)
The default is WB_2X. The to_image() function auto-selects based on
gadget.user_data (OS 2.x+ icons set this to 1).
License
Public domain (WTFPL).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amigainfo-0.1.0.tar.gz.
File metadata
- Download URL: amigainfo-0.1.0.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac5247d2f77752fb5819e7bec2cebb93da5e870c6b413bf46b76e1637113d7d0
|
|
| MD5 |
26d72cb0fc78226c149a408584d9d0b8
|
|
| BLAKE2b-256 |
17348485583edb330a0433d472f6127243c126b917e01e129f100744ca2b685a
|
File details
Details for the file amigainfo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: amigainfo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15f6acd428c4200531f689b37906bffd2766ba573aa65ba599dd688723e31c3e
|
|
| MD5 |
e5a7b9270382cafd5b6f0772f1b84ac0
|
|
| BLAKE2b-256 |
7d919f504a020937659936074dcc7b4a732828e3fd5209cb14c97dd7a8c6b82a
|