Class BMPImageReader


  • public final class BMPImageReader
    extends ImageReaderBase
    ImageReader for Microsoft Windows Bitmap (BMP) format.
    Version:
    $Id: BMPImageReader.java,v 1.0 Apr 20, 2009 11:54:28 AM haraldk Exp$
    See Also:
    ICOImageReader
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.awt.image.IndexColorModel colorMap  
      private int[] colors  
      private DIBHeader header  
      private javax.imageio.ImageReader jpegReaderDelegate  
      private long pixelOffset  
      private javax.imageio.ImageReader pngReaderDelegate  
      • Fields inherited from class javax.imageio.ImageReader

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

      Constructors 
      Constructor Description
      BMPImageReader()  
      BMPImageReader​(javax.imageio.spi.ImageReaderSpi provider)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private java.awt.image.Raster clipRowToRect​(java.awt.image.Raster raster, java.awt.Rectangle rect, int[] bands, int xSub)  
      private java.awt.image.WritableRaster clipToRect​(java.awt.image.WritableRaster raster, java.awt.Rectangle rect, int[] bands)  
      private int[] createOffsets​(int numBands)  
      int getHeight​(int imageIndex)  
      javax.imageio.metadata.IIOMetadata getImageMetadata​(int imageIndex)
      Default implementation that always returns null.
      private javax.imageio.ImageReader getImageReaderDelegate​(int compression)  
      java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypes​(int imageIndex)  
      int getNumImages​(boolean allowSearch)
      Default implementation that always returns 1.
      javax.imageio.ImageTypeSpecifier getRawImageType​(int imageIndex)  
      int getWidth​(int imageIndex)  
      private javax.imageio.ImageReader initReaderDelegate​(int compression)  
      static void main​(java.lang.String[] args)  
      java.awt.image.BufferedImage read​(int imageIndex, javax.imageio.ImageReadParam param)  
      private java.awt.image.IndexColorModel readColorMap()  
      private static void readFully​(java.io.DataInput input, int[] ints)  
      private static void readFully​(java.io.DataInput input, short[] shorts)  
      private void readHeader()  
      private void readRowByte​(java.io.DataInput input, int height, java.awt.Rectangle srcRegion, int xSub, int ySub, int bitsPerSample, int samplesPerPixel, byte[] rowDataByte, java.awt.image.WritableRaster destChannel, java.awt.image.Raster srcChannel, int y)  
      private void readRowInt​(java.io.DataInput input, int height, java.awt.Rectangle srcRegion, int xSub, int ySub, int[] rowDataInt, java.awt.image.WritableRaster destChannel, java.awt.image.Raster srcChannel, int y)  
      private void readRowUShort​(java.io.DataInput input, int height, java.awt.Rectangle srcRegion, int xSub, int ySub, short[] rowDataUShort, java.awt.image.WritableRaster destChannel, java.awt.image.Raster srcChannel, int y)  
      private java.awt.image.BufferedImage readUsingDelegate​(int compression, javax.imageio.ImageReadParam param)  
      protected void resetMembers()
      Resets all member variables.
      (package private) static <T extends java.lang.Throwable>
      void
      throwAs​(java.lang.Class<T> type, java.lang.Throwable throwable)  
      • 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
    • Field Detail

      • pixelOffset

        private long pixelOffset
      • colors

        private int[] colors
      • colorMap

        private java.awt.image.IndexColorModel colorMap
      • jpegReaderDelegate

        private javax.imageio.ImageReader jpegReaderDelegate
      • pngReaderDelegate

        private javax.imageio.ImageReader pngReaderDelegate
    • Constructor Detail

      • BMPImageReader

        public BMPImageReader()
      • BMPImageReader

        BMPImageReader​(javax.imageio.spi.ImageReaderSpi provider)
    • Method Detail

      • getNumImages

        public int getNumImages​(boolean allowSearch)
                         throws java.io.IOException
        Description copied from class: ImageReaderBase
        Default implementation that always returns 1.
        Overrides:
        getNumImages in class ImageReaderBase
        Parameters:
        allowSearch - ignored, unless overridden
        Returns:
        1, unless overridden
        Throws:
        java.io.IOException - never, unless overridden
      • readHeader

        private void readHeader()
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • readColorMap

        private java.awt.image.IndexColorModel readColorMap()
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • getWidth

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

        public int getHeight​(int imageIndex)
                      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 imageIndex)
                                                                           throws java.io.IOException
        Specified by:
        getImageTypes in class javax.imageio.ImageReader
        Throws:
        java.io.IOException
      • getRawImageType

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

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

        private java.awt.image.BufferedImage readUsingDelegate​(int compression,
                                                               javax.imageio.ImageReadParam param)
                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • initReaderDelegate

        private javax.imageio.ImageReader initReaderDelegate​(int compression)
                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • getImageReaderDelegate

        private javax.imageio.ImageReader getImageReaderDelegate​(int compression)
                                                          throws javax.imageio.IIOException
        Throws:
        javax.imageio.IIOException
      • createOffsets

        private int[] createOffsets​(int numBands)
      • readRowByte

        private void readRowByte​(java.io.DataInput input,
                                 int height,
                                 java.awt.Rectangle srcRegion,
                                 int xSub,
                                 int ySub,
                                 int bitsPerSample,
                                 int samplesPerPixel,
                                 byte[] rowDataByte,
                                 java.awt.image.WritableRaster destChannel,
                                 java.awt.image.Raster srcChannel,
                                 int y)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • readRowUShort

        private void readRowUShort​(java.io.DataInput input,
                                   int height,
                                   java.awt.Rectangle srcRegion,
                                   int xSub,
                                   int ySub,
                                   short[] rowDataUShort,
                                   java.awt.image.WritableRaster destChannel,
                                   java.awt.image.Raster srcChannel,
                                   int y)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • readRowInt

        private void readRowInt​(java.io.DataInput input,
                                int height,
                                java.awt.Rectangle srcRegion,
                                int xSub,
                                int ySub,
                                int[] rowDataInt,
                                java.awt.image.WritableRaster destChannel,
                                java.awt.image.Raster srcChannel,
                                int y)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • readFully

        private static void readFully​(java.io.DataInput input,
                                      short[] shorts)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • readFully

        private static void readFully​(java.io.DataInput input,
                                      int[] ints)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • clipRowToRect

        private java.awt.image.Raster clipRowToRect​(java.awt.image.Raster raster,
                                                    java.awt.Rectangle rect,
                                                    int[] bands,
                                                    int xSub)
      • clipToRect

        private java.awt.image.WritableRaster clipToRect​(java.awt.image.WritableRaster raster,
                                                         java.awt.Rectangle rect,
                                                         int[] bands)
      • getImageMetadata

        public javax.imageio.metadata.IIOMetadata getImageMetadata​(int imageIndex)
                                                            throws java.io.IOException
        Description copied from class: ImageReaderBase
        Default implementation that always returns null.
        Overrides:
        getImageMetadata in class ImageReaderBase
        Parameters:
        imageIndex - ignored, unless overridden
        Returns:
        null, unless overridden
        Throws:
        java.io.IOException - never, unless overridden.
      • main

        public static void main​(java.lang.String[] args)
      • throwAs

        static <T extends java.lang.Throwable> void throwAs​(java.lang.Class<T> type,
                                                            java.lang.Throwable throwable)
                                                     throws T extends java.lang.Throwable
        Throws:
        T extends java.lang.Throwable