Class BMPImageWriteParam
- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageWriteParam
-
- com.github.jaiimageio.plugins.bmp.BMPImageWriteParam
-
public class BMPImageWriteParam extends javax.imageio.ImageWriteParam
A subclass ofImageWriteParam
for encoding images in the BMP format.This class allows for the specification of various parameters while writing a BMP format image file. By default, the data layout is bottom-up, such that the pixels are stored in bottom-up order, the first scanline being stored last.
The particular compression scheme to be used can be specified by using the
setCompressionType()
method with the appropriate type string. The compression scheme specified will be honored if and only if it is compatible with the type of image being written. If the specified compression scheme is not compatible with the type of image being written then theIOException
will be thrown by the BMP image writer. If the compression type is not set explicitly thengetCompressionType()
will returnnull
. In this case the BMP image writer will select a compression type that supports encoding of the given image without loss of the color resolution.The compression type strings and the image type(s) each supports are listed in the following table:
Compression Types Type String Description Image Types BI_RGB Uncompressed RLE <= 8-bits/sample BI_RLE8 8-bit Run Length Encoding <= 8-bits/sample BI_RLE4 4-bit Run Length Encoding <= 4-bits/sample BI_BITFIELDS Packed data 16 or 32 bits/sample BI_JPEG JPEG encoded grayscale or RGB image When
BI_BITFIELDS
is used, if the image encoded has aDirectColorModel
, the bit mask in the color model will be written into the stream. Otherwise, only 5-5-5 16-bit image or 8-8-8 32-bit images are supported.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
topDown
static int
VERSION_2
Deprecated.static int
VERSION_3
Deprecated.static int
VERSION_4
Deprecated.static int
VERSION_5
Deprecated.-
Fields inherited from class javax.imageio.ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, compressionMode, compressionQuality, compressionType, compressionTypes, locale, MODE_COPY_FROM_METADATA, MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, preferredTileSizes, progressiveMode, tileGridXOffset, tileGridYOffset, tileHeight, tileWidth, tilingMode, tilingSet
-
-
Constructor Summary
Constructors Constructor Description BMPImageWriteParam()
Constructs anBMPImageWriteParam
object with default values for all parameters and anull
Locale
.BMPImageWriteParam(java.util.Locale locale)
Constructs aBMPImageWriteParam
set to use a givenLocale
and with default values for all parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
getVersion()
Deprecated.boolean
isTopDown()
Returns the value of thetopDown
parameter.void
setCompressionType(java.lang.String compressionType)
Sets the compression type to one of the values indicated bygetCompressionTypes
.void
setTopDown(boolean topDown)
If set, the data will be written out in a top-down manner, the first scanline being written first.-
Methods inherited from class javax.imageio.ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionQualityDescriptions, getCompressionQualityValues, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, isCompressionLossless, setCompressionMode, setCompressionQuality, setProgressiveMode, setTiling, setTilingMode, unsetCompression, unsetTiling
-
Methods inherited from class javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
-
-
-
Field Detail
-
VERSION_2
public static final int VERSION_2
Deprecated.Constant for BMP version 2.- See Also:
- Constant Field Values
-
VERSION_3
public static final int VERSION_3
Deprecated.Constant for BMP version 3.- See Also:
- Constant Field Values
-
VERSION_4
public static final int VERSION_4
Deprecated.Constant for BMP version 4.- See Also:
- Constant Field Values
-
VERSION_5
public static final int VERSION_5
Deprecated.Constant for BMP version 5.- See Also:
- Constant Field Values
-
topDown
private boolean topDown
-
-
Constructor Detail
-
BMPImageWriteParam
public BMPImageWriteParam(java.util.Locale locale)
Constructs aBMPImageWriteParam
set to use a givenLocale
and with default values for all parameters.- Parameters:
locale
- aLocale
to be used to localize compression type names and quality descriptions, ornull
.
-
BMPImageWriteParam
public BMPImageWriteParam()
Constructs anBMPImageWriteParam
object with default values for all parameters and anull
Locale
.
-
-
Method Detail
-
getVersion
public int getVersion()
Deprecated.Returns the BMP version to be used. The default isVERSION_3
.- Returns:
- the BMP version number.
-
setTopDown
public void setTopDown(boolean topDown)
If set, the data will be written out in a top-down manner, the first scanline being written first. Any compression other thanBI_RGB
orBI_BITFIELDS
is incompatible with the data being written in top-down order. Setting thetopDown
argument totrue
will be honored only when the compression type at the time of writing the image is one of the two mentioned above. Otherwise, thetopDown
setting will be ignored.- Parameters:
topDown
- whether the data are written in top-down order.
-
isTopDown
public boolean isTopDown()
Returns the value of thetopDown
parameter. The default isfalse
.- Returns:
- whether the data are written in top-down order.
-
setCompressionType
public void setCompressionType(java.lang.String compressionType)
Sets the compression type to one of the values indicated bygetCompressionTypes
. If a value ofnull
is passed in, any previous setting is removed.The method first invokes {@link javax.imageio.ImageWriteParam.#setCompressionType(String)
setCompressionType()
} with the supplied value ofcompressionType
. Next, ifisTopDown()
returnstrue
and the value ofcompressionType
is incompatible with top-down order,setTopDown(boolean)
is invoked with parametertopDown
set tofalse
. The image will then be written in bottom-up order with the specifiedcompressionType
.- Overrides:
setCompressionType
in classjavax.imageio.ImageWriteParam
- Parameters:
compressionType
- one of theString
s returned bygetCompressionTypes
, ornull
to remove any previous setting.- Throws:
java.lang.UnsupportedOperationException
- if the writer does not support compression.java.lang.IllegalStateException
- if the compression mode is notMODE_EXPLICIT
.java.lang.UnsupportedOperationException
- if there are no settable compression types.java.lang.IllegalArgumentException
- ifcompressionType
is non-null
but is not one of the values returned bygetCompressionTypes
.- See Also:
isTopDown()
,setTopDown(boolean)
,ImageWriteParam.getCompressionTypes()
,ImageWriteParam.getCompressionType()
,ImageWriteParam.unsetCompression()
-
-