Class IFFImageReader


  • public class IFFImageReader
    extends com.twelvemonkeys.imageio.ImageReaderBase
    Reader for Commodore Amiga (Electronic Arts) IFF ILBM (InterLeaved BitMap) and PBM format (Packed BitMap). 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 $
    Author:
    Harald Kuhr, last modified by $Author: haku $
    See Also:
    Wikipedia: IFF, Wikipedia: IFF ILBM
    • Field Summary

      • Fields inherited from class com.twelvemonkeys.imageio.ImageReaderBase

        imageInput
      • Fields inherited from class javax.imageio.ImageReader

        availableLocales, ignoreMetadata, input, locale, minIndex, originatingProvider, progressListeners, seekForwardOnly, updateListeners, warningListeners, warningLocales
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        IFFImageReader()  
      protected IFFImageReader​(javax.imageio.spi.ImageReaderSpi pProvider)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getHeight​(int pIndex)  
      java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypes​(int pIndex)  
      javax.imageio.ImageTypeSpecifier getRawImageType​(int pIndex)  
      int getWidth​(int pIndex)  
      boolean isLaced()  
      static void main​(java.lang.String[] pArgs)  
      java.awt.image.BufferedImage read​(int pIndex, javax.imageio.ImageReadParam pParam)  
      protected void resetMembers()  
      • Methods inherited from class com.twelvemonkeys.imageio.ImageReaderBase

        assertInput, checkBounds, dispose, fakeAOI, fakeSubsampling, getDestination, getImageMetadata, getNumImages, getStreamMetadata, hasExplicitDestination, reset, setInput, showIt
      • Methods inherited from class javax.imageio.ImageReader

        abort, abortRequested, addIIOReadProgressListener, addIIOReadUpdateListener, addIIOReadWarningListener, canReadRaster, checkReadParamBandSettings, clearAbortRequest, computeRegions, getAspectRatio, getAvailableLocales, getDefaultReadParam, getFormatName, getImageMetadata, getInput, getLocale, getMinIndex, getNumThumbnails, getOriginatingProvider, getSourceRegion, getStreamMetadata, getThumbnailHeight, getThumbnailWidth, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, hasThumbnails, isIgnoringMetadata, isImageTiled, isRandomAccessEasy, isSeekForwardOnly, processImageComplete, processImageProgress, processImageStarted, processImageUpdate, processPassComplete, processPassStarted, processReadAborted, processSequenceComplete, processSequenceStarted, processThumbnailComplete, processThumbnailPassComplete, processThumbnailPassStarted, processThumbnailProgress, processThumbnailStarted, processThumbnailUpdate, processWarningOccurred, processWarningOccurred, read, readAll, readAll, readAsRenderedImage, readerSupportsThumbnails, readRaster, readThumbnail, readTile, readTileRaster, removeAllIIOReadProgressListeners, removeAllIIOReadUpdateListeners, removeAllIIOReadWarningListeners, removeIIOReadProgressListener, removeIIOReadUpdateListener, removeIIOReadWarningListener, setInput, setInput, setLocale
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • IFFImageReader

        public IFFImageReader()
      • IFFImageReader

        protected IFFImageReader​(javax.imageio.spi.ImageReaderSpi pProvider)
    • Method Detail

      • resetMembers

        protected void resetMembers()
        Specified by:
        resetMembers in class com.twelvemonkeys.imageio.ImageReaderBase
      • read

        public java.awt.image.BufferedImage read​(int pIndex,
                                                 javax.imageio.ImageReadParam pParam)
                                          throws java.io.IOException
        Specified by:
        read in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • getWidth

        public int getWidth​(int pIndex)
                     throws java.io.IOException
        Specified by:
        getWidth in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • getHeight

        public int getHeight​(int pIndex)
                      throws java.io.IOException
        Specified by:
        getHeight in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • getImageTypes

        public java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypes​(int pIndex)
                                                                           throws java.io.IOException
        Specified by:
        getImageTypes in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • getRawImageType

        public javax.imageio.ImageTypeSpecifier getRawImageType​(int pIndex)
                                                         throws java.io.IOException
        Overrides:
        getRawImageType in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • isLaced

        public boolean isLaced()
      • main

        public static void main​(java.lang.String[] pArgs)
                         throws java.io.IOException
        Throws:
        java.io.IOException