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 classBMPImageWriter.IIOWriteProgressAdapter
-
Field Summary
Fields Modifier and Type Field Description private int[]bitMasksprivate int[]bitPosprivate byte[]bpixelsprivate intcompImageSizeprivate intcompressionTypeprivate java.io.ByteArrayOutputStreamembedded_streamprivate inthprivate int[]ipixelsprivate booleanisTopDownprivate short[]spixelsprivate javax.imageio.stream.ImageOutputStreamstreamThe output stream to write intoprivate intw-
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)ConstructsBMPImageWriterbased on the providedImageWriterSpi.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancanEncodeImage(int compression, java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)protected booleancanEncodeImage(int compression, javax.imageio.ImageTypeSpecifier imgType)booleancanWriteRasters()javax.imageio.metadata.IIOMetadataconvertImageMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)javax.imageio.metadata.IIOMetadataconvertStreamMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageWriteParam param)private voidencodeRLE4(byte[] bipixels, int scanlineBytes)private voidencodeRLE8(byte[] bpixels, int scanlineBytes)private intfirstLowBit(int num)(package private) static intgetCompressionType(java.lang.String typeString)javax.imageio.metadata.IIOMetadatagetDefaultImageMetadata(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)javax.imageio.metadata.IIOMetadatagetDefaultStreamMetadata(javax.imageio.ImageWriteParam param)javax.imageio.ImageWriteParamgetDefaultWriteParam()(package private) static intgetPreferredCompressionType(java.awt.image.ColorModel cm, java.awt.image.SampleModel sm)(package private) static intgetPreferredCompressionType(javax.imageio.ImageTypeSpecifier imageType)private voidincCompImageSize(int value)private booleanisEven(int number)voidreset()private introundBpp(int x)voidsetOutput(java.lang.Object output)voidwrite(javax.imageio.metadata.IIOMetadata streamMetadata, javax.imageio.IIOImage image, javax.imageio.ImageWriteParam param)private voidwriteEmbedded(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam bmpParam)private voidwriteFileHeader(int fileSize, int offset)private voidwriteInfoHeader(int headerSize, int bitsPerPixel)protected voidwriteMaskToPalette(int mask, int i, byte[] r, byte[] g, byte[] b, byte[] a)private voidwritePixels(int l, int scanlineBytes, int bitsPerPixel, int[] pixels, int padding, int numBands, java.awt.image.IndexColorModel icm)private voidwriteSize(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:
setOutputin classjavax.imageio.ImageWriter
-
getDefaultWriteParam
public javax.imageio.ImageWriteParam getDefaultWriteParam()
- Overrides:
getDefaultWriteParamin classjavax.imageio.ImageWriter
-
getDefaultStreamMetadata
public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata(javax.imageio.ImageWriteParam param)
- Specified by:
getDefaultStreamMetadatain classjavax.imageio.ImageWriter
-
getDefaultImageMetadata
public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier imageType, javax.imageio.ImageWriteParam param)- Specified by:
getDefaultImageMetadatain classjavax.imageio.ImageWriter
-
convertStreamMetadata
public javax.imageio.metadata.IIOMetadata convertStreamMetadata(javax.imageio.metadata.IIOMetadata inData, javax.imageio.ImageWriteParam param)- Specified by:
convertStreamMetadatain interfacejavax.imageio.ImageTranscoder- Specified by:
convertStreamMetadatain 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:
convertImageMetadatain interfacejavax.imageio.ImageTranscoder- Specified by:
convertImageMetadatain classjavax.imageio.ImageWriter
-
canWriteRasters
public boolean canWriteRasters()
- Overrides:
canWriteRastersin 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:
writein 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:
resetin 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)
-
-