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:

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 RGB Image.

Arguments:

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).

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: