Class IFFImageReader

java.lang.Object
javax.imageio.ImageReader
com.twelvemonkeys.imageio.ImageReaderBase
com.twelvemonkeys.imageio.plugins.iff.IFFImageReader

public final class IFFImageReader extends ImageReaderBase
Reader for Commodore Amiga (Electronic Arts) IFF ILBM (InterLeaved BitMap) and PBM format (Packed BitMap). Also supports IFF RGB8 (Impulse) and IFF DEEP (TVPaint). The IFF format (Interchange File Format) is the standard file format supported by allmost all image software for the Amiga computer.

This reader supports the original palette-based 1-8 bit formats, including EHB (Extra Half-Bright), HAM (Hold and Modify), and the more recent "deep" formats, 8 bit gray, 24 bit RGB and 32 bit ARGB. Uncompressed and ByteRun1 compressed (run length encoding) files are supported.

Palette based images are read as BufferedImage of TYPE_BYTE_INDEXED or BufferedImage# depending on the bit depth. Gray images are read as TYPE_BYTE_GRAY. 24 bit true-color images are read as TYPE_3BYTE_BGR. 32 bit true-color images are read as TYPE_4BYTE_ABGR.

Issues: HAM and HAM8 (Hold and Modify) formats are converted to RGB (24 bit), as it seems to be very hard to create an IndexColorModel subclass that would correctly describe these formats. These formats utilizes the special display hardware in the Amiga computers. HAM (6 bits) needs 12 bits storage/pixel, if unpacked to RGB (4 bits/gun). HAM8 (8 bits) needs 18 bits storage/pixel, if unpacked to RGB (6 bits/gun). See Wikipedia: HAM for more information.
EHB palette is expanded to an IndexColorModel with 64 entries. See Wikipedia: EHB for more information.

Version:
$Id: IFFImageReader.java,v 1.0 29.aug.2004 20:26:58 haku Exp $
See Also: