A macOS app that converts PNG and JPEG images to Amiga IFF/ILBM format.
Drop an image, pick your settings, hit Convert. The .iff file is written next to the original.
-
Classic Amiga mode -- target real hardware constraints:
- ECS/OCS or AGA chipset limits
- Standard screen presets (Low Res, High Res, High Res Interlace) for both PAL and NTSC
- Fit, Fill, or Stretch resize modes
- CAMG chunk with correct viewport mode flags
- Deluxe Paint-compatible output
-
Custom IFF mode -- no hardware constraints:
- Any palette size from 2 to 256 colors
- True Color (24-bit) -- 24 bitplanes, no palette, no quantization
- No CAMG chunk, no forced resize, portrait images allowed
-
Dithering -- four methods for indexed color modes:
- Floyd-Steinberg (error diffusion)
- Bayer 8x8 (ordered)
- Blue Noise (stochastic)
-
Median-cut color quantization with parallelized histogram, palette generation, and pixel mapping
-
Image preview with drag-and-drop -- see what you're converting before you commit
The conversion pipeline has three stages:
- Decode -- load the source image into a BGRA8 pixel buffer via CoreGraphics
- Quantize -- reduce to a fixed palette using median-cut, then map every pixel to its nearest entry (skipped for True Color)
- Encode -- pack into interleaved bitplane ILBM format (BMHD + CMAP + BODY chunks inside an IFF FORM)
Quantization and encoding are parallelized across available CPU cores.
- macOS 13+
- Swift 6.2+
swift run
The encoder produces standard uncompressed IFF/ILBM files compatible with:
- Deluxe Paint
- Personal Paint
- XnView, IrfanView, and other modern IFF viewers
- Real Amiga hardware (in Classic Amiga mode with appropriate settings)
For 24-bit True Color mode, the output uses 24 bitplanes (planes 0-7 = Red, 8-15 = Green, 16-23 = Blue) with no CMAP chunk.