Skip to main content

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

amigainfo-0.1.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amigainfo-0.1.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

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

Hashes for amigainfo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ac5247d2f77752fb5819e7bec2cebb93da5e870c6b413bf46b76e1637113d7d0
MD5 26d72cb0fc78226c149a408584d9d0b8
BLAKE2b-256 17348485583edb330a0433d472f6127243c126b917e01e129f100744ca2b685a

See more details on using hashes here.

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

Hashes for amigainfo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 15f6acd428c4200531f689b37906bffd2766ba573aa65ba599dd688723e31c3e
MD5 e5a7b9270382cafd5b6f0772f1b84ac0
BLAKE2b-256 7d919f504a020937659936074dcc7b4a732828e3fd5209cb14c97dd7a8c6b82a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page