Class BMPImageWriteParam
ImageWriteParam 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 the IOException will be thrown by the BMP image writer.
If the compression type is not set explicitly then getCompressionType()
will return null. 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:
| 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 a
DirectColorModel, 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
FieldsModifier and TypeFieldDescriptionstatic final intDeprecated.static final intDeprecated.static final intDeprecated.static final intDeprecated.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, tilingSetFields inherited from class javax.imageio.IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset -
Constructor Summary
ConstructorsConstructorDescriptionConstructs anBMPImageWriteParamobject with default values for all parameters and anullLocale.BMPImageWriteParam(Locale locale) Constructs aBMPImageWriteParamset to use a givenLocaleand with default values for all parameters. -
Method Summary
Modifier and TypeMethodDescriptionintDeprecated.booleanReturns the value of thetopDownparameter.voidsetCompressionType(String compressionType) Sets the compression type to one of the values indicated bygetCompressionTypes.voidsetTopDown(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, unsetTilingMethods 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 Details
-
VERSION_2
public static final int VERSION_2Deprecated.Constant for BMP version 2.- See Also:
-
VERSION_3
public static final int VERSION_3Deprecated.Constant for BMP version 3.- See Also:
-
VERSION_4
public static final int VERSION_4Deprecated.Constant for BMP version 4.- See Also:
-
VERSION_5
public static final int VERSION_5Deprecated.Constant for BMP version 5.- See Also:
-
-
Constructor Details
-
BMPImageWriteParam
Constructs aBMPImageWriteParamset to use a givenLocaleand with default values for all parameters.- Parameters:
locale- aLocaleto be used to localize compression type names and quality descriptions, ornull.
-
BMPImageWriteParam
public BMPImageWriteParam()Constructs anBMPImageWriteParamobject with default values for all parameters and anullLocale.
-
-
Method Details
-
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_RGBorBI_BITFIELDSis incompatible with the data being written in top-down order. Setting thetopDownargument totruewill be honored only when the compression type at the time of writing the image is one of the two mentioned above. Otherwise, thetopDownsetting will be ignored.- Parameters:
topDown- whether the data are written in top-down order.
-
isTopDown
public boolean isTopDown()Returns the value of thetopDownparameter. The default isfalse.- Returns:
- whether the data are written in top-down order.
-
setCompressionType
Sets the compression type to one of the values indicated bygetCompressionTypes. If a value ofnullis 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()returnstrueand the value ofcompressionTypeis incompatible with top-down order,setTopDown(boolean)is invoked with parametertopDownset tofalse. The image will then be written in bottom-up order with the specifiedcompressionType.- Overrides:
setCompressionTypein classImageWriteParam- Parameters:
compressionType- one of theStrings returned bygetCompressionTypes, ornullto remove any previous setting.- Throws:
UnsupportedOperationException- if the writer does not support compression.IllegalStateException- if the compression mode is notMODE_EXPLICIT.UnsupportedOperationException- if there are no settable compression types.IllegalArgumentException- ifcompressionTypeis non-nullbut is not one of the values returned bygetCompressionTypes.- See Also:
-