Class BMPImageWriter
- java.lang.Object
-
- javax.imageio.ImageWriter
-
- com.github.jaiimageio.impl.plugins.bmp.BMPImageWriter
-
- All Implemented Interfaces:
BMPConstants
,javax.imageio.ImageTranscoder
public class BMPImageWriter extends javax.imageio.ImageWriter implements BMPConstants
The Java Image IO plugin writer for encoding a binary RenderedImage into a BMP format. The encoding process may clip, subsample using the parameters specified in theImageWriteParam
.- See Also:
BMPImageWriteParam
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
BMPImageWriter.IIOWriteProgressAdapter
-
Field Summary
Fields Modifier and Type Field Description private int[]
bitMasks
private int[]
bitPos
private byte[]
bpixels
private int
compImageSize
private int
compressionType
private java.io.ByteArrayOutputStream
embedded_stream
private int
h
private int[]
ipixels
private boolean
isTopDown
private short[]
spixels
private javax.imageio.stream.ImageOutputStream
stream
The output stream to write intoprivate int
w
-
Fields inherited from class javax.imageio.ImageWriter
availableLocales, locale, originatingProvider, output, progressListeners, warningListeners, warningLocales
-
Fields inherited from interface com.github.jaiimageio.impl.plugins.bmp.BMPConstants
BI_BITFIELDS, BI_JPEG, BI_PNG, BI_RGB, BI_RLE4, BI_RLE8, compressionTypeNames, LCS_CALIBRATED_RGB, LCS_sRGB, LCS_WINDOWS_COLOR_SPACE, PROFILE_EMBEDDED, PROFILE_LINKED, VERSION_2, VERSION_3, VERSION_3_NT, VERSION_4, VERSION_5
-
-
Constructor Summary
Constructors Constructor Description BMPImageWriter(javax.imageio.spi.ImageWriterSpi originator)
ConstructsBMPImageWriter
based on the providedImageWriterSpi
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
canEncodeImage(int compression, java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)
protected boolean
canEncodeImage(int compression, javax.imageio.ImageTypeSpecifier imgType)
boolean
canWriteRasters()
javax.imageio.metadata.IIOMetadata
convertImageMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)
javax.imageio.metadata.IIOMetadata
convertStreamMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageWriteParam param)
private void
encodeRLE4(byte[] bipixels, int scanlineBytes)
private void
encodeRLE8(byte[] bpixels, int scanlineBytes)
private int
firstLowBit(int num)
(package private) static int
getCompressionType(java.lang.String typeString)
javax.imageio.metadata.IIOMetadata
getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)
javax.imageio.metadata.IIOMetadata
getDefaultStreamMetadata(javax.imageio.ImageWriteParam param)
javax.imageio.ImageWriteParam
getDefaultWriteParam()
(package private) static int
getPreferredCompressionType(java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)
(package private) static int
getPreferredCompressionType(javax.imageio.ImageTypeSpecifier imageType)
private void
incCompImageSize(int value)
private boolean
isEven(int number)
void
reset()
private int
roundBpp(int x)
void
setOutput(java.lang.Object output)
void
write(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)
private void
writeEmbedded(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam bmpParam)
private void
writeFileHeader(int fileSize, int offset)
private void
writeInfoHeader(int headerSize, int bitsPerPixel)
protected void
writeMaskToPalette(int mask, int i, byte[] r, byte[] g, byte[] b, byte[] a)
private void
writePixels(int l, int scanlineBytes, int bitsPerPixel, int[] pixels, int padding, int numBands, java.awt.image.IndexColorModel icm)
private void
writeSize(int dword, int offset)
-
Methods inherited from class javax.imageio.ImageWriter
abort, abortRequested, addIIOWriteProgressListener, addIIOWriteWarningListener, canInsertEmpty, canInsertImage, canRemoveImage, canReplaceImageMetadata, canReplacePixels, canReplaceStreamMetadata, canWriteEmpty, canWriteSequence, clearAbortRequest, dispose, endInsertEmpty, endReplacePixels, endWriteEmpty, endWriteSequence, getAvailableLocales, getLocale, getNumThumbnailsSupported, getOriginatingProvider, getOutput, getPreferredThumbnailSizes, prepareInsertEmpty, prepareReplacePixels, prepareWriteEmpty, prepareWriteSequence, processImageComplete, processImageProgress, processImageStarted, processThumbnailComplete, processThumbnailProgress, processThumbnailStarted, processWarningOccurred, processWarningOccurred, processWriteAborted, removeAllIIOWriteProgressListeners, removeAllIIOWriteWarningListeners, removeIIOWriteProgressListener, removeIIOWriteWarningListener, removeImage, replaceImageMetadata, replacePixels, replacePixels, replaceStreamMetadata, setLocale, write, write, writeInsert, writeToSequence
-
-
-
-
Field Detail
-
stream
private javax.imageio.stream.ImageOutputStream stream
The output stream to write into
-
embedded_stream
private java.io.ByteArrayOutputStream embedded_stream
-
compressionType
private int compressionType
-
isTopDown
private boolean isTopDown
-
w
private int w
-
h
private int h
-
compImageSize
private int compImageSize
-
bitMasks
private int[] bitMasks
-
bitPos
private int[] bitPos
-
bpixels
private byte[] bpixels
-
spixels
private short[] spixels
-
ipixels
private int[] ipixels
-
-
Method Detail
-
setOutput
public void setOutput(java.lang.Object output)
- Overrides:
setOutput
in classjavax.imageio.ImageWriter
-
getDefaultWriteParam
public javax.imageio.ImageWriteParam getDefaultWriteParam()
- Overrides:
getDefaultWriteParam
in classjavax.imageio.ImageWriter
-
getDefaultStreamMetadata
public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata(javax.imageio.ImageWriteParam param)
- Specified by:
getDefaultStreamMetadata
in classjavax.imageio.ImageWriter
-
getDefaultImageMetadata
public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)
- Specified by:
getDefaultImageMetadata
in classjavax.imageio.ImageWriter
-
convertStreamMetadata
public javax.imageio.metadata.IIOMetadata convertStreamMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageWriteParam param)
- Specified by:
convertStreamMetadata
in interfacejavax.imageio.ImageTranscoder
- Specified by:
convertStreamMetadata
in classjavax.imageio.ImageWriter
-
convertImageMetadata
public javax.imageio.metadata.IIOMetadata convertImageMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)
- Specified by:
convertImageMetadata
in interfacejavax.imageio.ImageTranscoder
- Specified by:
convertImageMetadata
in classjavax.imageio.ImageWriter
-
canWriteRasters
public boolean canWriteRasters()
- Overrides:
canWriteRasters
in classjavax.imageio.ImageWriter
-
write
public void write(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param) throws java.io.IOException
- Specified by:
write
in classjavax.imageio.ImageWriter
- Throws:
java.io.IOException
-
writePixels
private void writePixels(int l, int scanlineBytes, int bitsPerPixel, int[] pixels, int padding, int numBands, java.awt.image.IndexColorModel icm) throws java.io.IOException
- Throws:
java.io.IOException
-
encodeRLE8
private void encodeRLE8(byte[] bpixels, int scanlineBytes) throws java.io.IOException
- Throws:
java.io.IOException
-
encodeRLE4
private void encodeRLE4(byte[] bipixels, int scanlineBytes) throws java.io.IOException
- Throws:
java.io.IOException
-
incCompImageSize
private void incCompImageSize(int value)
-
isEven
private boolean isEven(int number)
-
writeFileHeader
private void writeFileHeader(int fileSize, int offset) throws java.io.IOException
- Throws:
java.io.IOException
-
writeInfoHeader
private void writeInfoHeader(int headerSize, int bitsPerPixel) throws java.io.IOException
- Throws:
java.io.IOException
-
writeSize
private void writeSize(int dword, int offset) throws java.io.IOException
- Throws:
java.io.IOException
-
reset
public void reset()
- Overrides:
reset
in classjavax.imageio.ImageWriter
-
getCompressionType
static int getCompressionType(java.lang.String typeString)
-
writeEmbedded
private void writeEmbedded(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam bmpParam) throws java.io.IOException
- Throws:
java.io.IOException
-
firstLowBit
private int firstLowBit(int num)
-
getPreferredCompressionType
static int getPreferredCompressionType(java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)
-
getPreferredCompressionType
static int getPreferredCompressionType(javax.imageio.ImageTypeSpecifier imageType)
-
canEncodeImage
protected boolean canEncodeImage(int compression, java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)
-
canEncodeImage
protected boolean canEncodeImage(int compression, javax.imageio.ImageTypeSpecifier imgType)
-
writeMaskToPalette
protected void writeMaskToPalette(int mask, int i, byte[] r, byte[] g, byte[] b, byte[] a)
-
roundBpp
private int roundBpp(int x)
-
-