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:
obj- A loaded DiskObject.selected- If True, render the selected (highlighted) state.
Returns:
A Pillow Image in RGBA or RGB mode.
Raises:
ValueError- If no image data is available.
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:
img- A ClassicImage with planar bitmap data.palette- Color palette to use. Defaults to the WB 2.x palette.
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:
data- Raw bytes of the .info file.
Returns:
A DiskObject populated with all parsed data.
Raises:
ValueError- If the file doesn’t start with the expected magic number.
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:
obj- A DiskObject to serialize.
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:
- classic: Planar bitmaps (always present for 0xE310 files)
- newicon: Higher color images encoded in ToolTypes
- coloricon: GlowIcons IMAG chunks (OS 3.5+)
- argb: 32-bit ARGB image data (OS4)