Class BMPImageReader
- java.lang.Object
-
- javax.imageio.ImageReader
-
- com.twelvemonkeys.imageio.ImageReaderBase
-
- com.twelvemonkeys.imageio.plugins.bmp.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
BMPImageReader.ListenerDelegator
-
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 com.twelvemonkeys.imageio.ImageReaderBase
imageInput
-
-
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 returnsnull
.private javax.imageio.ImageReader
getImageReaderDelegate(int compression)
java.util.Iterator<javax.imageio.ImageTypeSpecifier>
getImageTypes(int imageIndex)
int
getNumImages(boolean allowSearch)
Default implementation that always returns1
.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>
voidthrowAs(java.lang.Class<T> type, java.lang.Throwable throwable)
-
Methods inherited from class com.twelvemonkeys.imageio.ImageReaderBase
assertInput, checkBounds, dispose, fakeAOI, fakeSubsampling, getDestination, 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
-
-
-
-
Field Detail
-
pixelOffset
private long pixelOffset
-
header
private DIBHeader header
-
colors
private int[] colors
-
colorMap
private java.awt.image.IndexColorModel colorMap
-
jpegReaderDelegate
private javax.imageio.ImageReader jpegReaderDelegate
-
pngReaderDelegate
private javax.imageio.ImageReader pngReaderDelegate
-
-
Method Detail
-
resetMembers
protected void resetMembers()
Description copied from class:ImageReaderBase
Resets all member variables. This method is by default invoked from:- Specified by:
resetMembers
in classImageReaderBase
-
getNumImages
public int getNumImages(boolean allowSearch) throws java.io.IOException
Description copied from class:ImageReaderBase
Default implementation that always returns1
.- Overrides:
getNumImages
in classImageReaderBase
- 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 classjavax.imageio.ImageReader
- Throws:
java.io.IOException
-
getHeight
public int getHeight(int imageIndex) throws java.io.IOException
- Specified by:
getHeight
in classjavax.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 classjavax.imageio.ImageReader
- Throws:
java.io.IOException
-
getRawImageType
public javax.imageio.ImageTypeSpecifier getRawImageType(int imageIndex) throws java.io.IOException
- Overrides:
getRawImageType
in classjavax.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 classjavax.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 returnsnull
.- Overrides:
getImageMetadata
in classImageReaderBase
- 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
-
-