amigainfo

amigainfo.enums

IconType Objects

class IconType(IntEnum)

do_Type values from the DiskObject structure.

GadgetFlag Objects

class GadgetFlag(IntFlag)

Gadget flag bits (ga_Flags).

GadgetActivation Objects

class GadgetActivation(IntFlag)

Gadget activation bits (ga_Activation).

amigainfo.palettes

Default Workbench palettes for classic Amiga icons.

Classic .info files don’t contain palette data — they use the system Workbench palette. These are the standard palettes from each OS generation.

amigainfo.__main__

CLI tool for inspecting and converting Amiga .info files.

amigainfo.render

Render Amiga .info image data to Pillow Images.

to_image

def to_image(obj: DiskObject, selected: bool = False) -> Image.Image

Render the best available image from a DiskObject.

Priority: ARGB > ColorIcon > NewIcon > Classic. Falls back to normal state if selected is not available.

Arguments:

Returns:

A Pillow Image in RGBA or RGB mode.

Raises:

png_to_image

def png_to_image(data: bytes) -> Image.Image

Render a PNG icon image to a Pillow RGBA Image.

argb_to_image

def argb_to_image(img: ARGBImage) -> Image.Image

Render an ARGB image to a Pillow RGBA Image.

The raw data is in ARGB byte order; we swap to RGBA for Pillow.

coloricon_to_image

def coloricon_to_image(img: ColorIconImage) -> Image.Image

Render a ColorIcon/GlowIcon image to a Pillow RGBA Image.

newicon_to_image

def newicon_to_image(img: NewIconImage) -> Image.Image

Render a NewIcon image to a Pillow RGBA Image.

classic_to_image

def classic_to_image(
        img: ClassicImage,
        palette: tuple[tuple[int, int, int], ...] | None = None
) -> Image.Image

Render a classic planar image to a Pillow RGBA Image.

Palette index 0 is treated as transparent.

Arguments:

amigainfo.pillow_plugin

Pillow plugin for Amiga Workbench .info icon files.

Registers the WBINFO format so that Image.open("icon.info") works after import amigainfo.

amigainfo.load

Load Amiga .info files into DiskObject dataclasses.

load

def load(data: bytes | bytearray) -> DiskObject

Parse an Amiga .info file and return a DiskObject.

Arguments:

Returns:

A DiskObject populated with all parsed data.

Raises:

amigainfo.save

Write DiskObject dataclasses back to Amiga .info file bytes.

save

def save(obj: DiskObject) -> bytes

Serialize a DiskObject to Amiga .info file bytes.

Arguments:

Returns:

Raw bytes of the .info file.

amigainfo.models

Gadget Objects

@dataclass
class Gadget()

Embedded Gadget structure from the DiskObject header (44 bytes on disk).

DrawerData Objects

@dataclass
class DrawerData()

Drawer window state.

Contains NewWindow fields for the drawer window, scroll offsets, and optional OS 2.x+ display flags (DrawerData2).

ImageHeader Objects

@dataclass
class ImageHeader()

Amiga Image structure header (20 bytes on disk).

Describes a single planar bitmap. The actual pixel data is stored separately.

ClassicImage Objects

@dataclass
class ClassicImage()

A single classic planar bitmap image with its header.

ClassicImages Objects

@dataclass
class ClassicImages()

Classic planar bitmap images (OS 1.x-3.1).

Always present in a standard .info file. Up to two images: normal (from GadgetRender) and selected (from SelectRender).

NewIconImage Objects

@dataclass
class NewIconImage()

A single decoded NewIcon image.

NewIconImages Objects

@dataclass
class NewIconImages()

NewIcon images decoded from ToolTypes strings.

Identified by the “** DON’T EDIT THE FOLLOWING LINES!! **” sentinel. Image data is in IM1= (normal) and IM2= (selected) tooltypes.

FaceChunk Objects

@dataclass
class FaceChunk()

FACE chunk from IFF FORM ICON (GlowIcons/OS 3.5+).

ColorIconImage Objects

@dataclass
class ColorIconImage()

A single IMAG chunk image from IFF FORM ICON.

ColorIconImages Objects

@dataclass
class ColorIconImages()

GlowIcons / ColorIcon images from IFF FORM ICON (OS 3.5+).

Found appended after classic .info data as FORM ICON chunks.

ARGBImage Objects

@dataclass
class ARGBImage()

A single 32-bit ARGB image, zlib-compressed in the file.

ARGBImages Objects

@dataclass
class ARGBImages()

32-bit ARGB images from IFF FORM ICON ARGB chunks (OS4).

PNGImages Objects

@dataclass
class PNGImages()

OS4 PNG icon images. Two concatenated PNG files.

DiskObject Objects

@dataclass
class DiskObject()

Top-level Amiga .info file structure.

Every standard .info file starts with a DiskObject header containing metadata and a Gadget structure. Image data may be present in multiple formats, layered on top of each other for backward compatibility: