Package org.geotools.gce.geotiff
Class GeoTiffWriteParams
Object
IIOParam
ImageWriteParam
GeoToolsWriteParams
GeoTiffWriteParams
Subclass of
GeoToolsWriteParams the allows the user to specify parameters to control the process of writing
out a GeoTiff file through standards ImageWriteParam (with possible extensions).
This class allows the user to control the output tile size for the GeoTiff file we are going to create as well as the possible compression.
An example of usage of this parameters is as follows:
//getting a format
final GeoTiffFormat format = new GeoTiffFormat();
//getting the write parameters
final GeoTiffWriteParams wp = new GeoTiffWriteParams();
//setting compression to LZW
wp.setCompressionMode(GeoTiffWriteParams.MODE_EXPLICIT);
wp.setCompressionType("LZW");
wp.setCompressionQuality(0.75F);
//setting the tile size to 256X256
wp.setTilingMode(GeoToolsWriteParams.MODE_EXPLICIT);
wp.setTiling(256, 256);
//setting the write parameters for this geotiff
final ParameterValueGroup params = format.getWriteParameters();
params.parameter(
AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString())
.setValue(wp);
//get a reader to the input File
GridCoverageReader reader = new GeoTiffReader(inFile, null);
GridCoverageWriter writer = null;
GridCoverage2D gc = null;
if (reader != null) {
// reading the coverage
gc = (GridCoverage2D) reader.read();
if (gc != null) {
final File writeFile = new File(new StringBuffer(writedir
.getAbsolutePath()).append(File.separatorChar)
.append(gc.getName().toString()).append(".tiff")
.toString());
writer = format.getWriter(writeFile);
writer.write(gc, (GeneralParameterValue[]) params.values()
.toArray(new GeneralParameterValue[1]));
}
- Since:
- 2.3.x
- Author:
- Simone Giannecchini
-
Field Summary
Fields inherited from class GeoToolsWriteParams
adapteeFields inherited from class 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 IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionTIFFColorConverterReturns the currentTIFFColorConverterobject that will be used to perform color conversion when writing the image, ornullif none is set.intReturns the current value that will be written to thePhotometricinterpretationtag.TIFFCompressorReturns theTIFFCompressorthat is currently set to be used by theImageWriterto encode each image strip or tile, ornullif none has been set.booleanbooleanvoidsetColorConverter(TIFFColorConverter colorConverter, int photometricInterpretation) Sets theTIFFColorConverterobject describing the color space to which the input data should be converted for storage in the input stream.voidsetForceToBigTIFF(boolean forceToBigTIFF) voidsetTIFFCompressor(TIFFCompressor compressor) Sets theTIFFCompressorobject to be used by theImageWriterto encode each image strip or tile.voidRemoves any currently setColorConverterobject andPhotometricInterpretationtag value.Methods inherited from class GeoToolsWriteParams
activateController, canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getAdaptee, getBitRate, getCompressionMode, getCompressionQuality, getCompressionQualityDescriptions, getCompressionQualityValues, getCompressionType, getCompressionTypes, getController, getDefaultController, getDestinationOffset, getDestinationType, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, hasController, setCompressionMode, setCompressionQuality, setCompressionType, setController, setDestinationOffset, setDestinationType, setProgressiveMode, setSourceBands, setSourceRegion, setSourceSubsampling, setTiling, setTilingMode, unsetCompression, unsetTilingMethods inherited from class ImageWriteParam
setTiling
-
Constructor Details
-
GeoTiffWriteParams
public GeoTiffWriteParams()Default constructor.
-
-
Method Details
-
setForceToBigTIFF
public void setForceToBigTIFF(boolean forceToBigTIFF) -
isForceToBigTIFF
public boolean isForceToBigTIFF() -
getColorConverter
public TIFFColorConverter getColorConverter()Returns the currentTIFFColorConverterobject that will be used to perform color conversion when writing the image, ornullif none is set.- Returns:
- a
TIFFColorConverterobject, ornull. - See Also:
-
getPhotometricInterpretation
public int getPhotometricInterpretation()Returns the current value that will be written to thePhotometricinterpretationtag. This method should only be called if a value has been set using thesetColorConvertermethod.- Returns:
- an
intto be used as the value of thePhotometricInterpretationtag. - Throws:
IllegalStateException- if no value is set.- See Also:
-
getTIFFCompressor
public TIFFCompressor getTIFFCompressor()Returns theTIFFCompressorthat is currently set to be used by theImageWriterto encode each image strip or tile, ornullif none has been set.- Returns:
- compressor the
TIFFCompressorto be used for encoding, ornullif none has been set (allowing the writer to choose its own). - Throws:
IllegalStateException- if the compression mode is notMODE_EXPLICIT.- See Also:
-
isCompressionLossless
public boolean isCompressionLossless()- Overrides:
isCompressionLosslessin classGeoToolsWriteParams
-
setColorConverter
public void setColorConverter(TIFFColorConverter colorConverter, int photometricInterpretation) Sets theTIFFColorConverterobject describing the color space to which the input data should be converted for storage in the input stream. In addition, the value to be written to thePhotometricInterpretationtag is supplied.- Parameters:
colorConverter- aTIFFColorConverterobject, ornull.photometricInterpretation- the value to be written to thePhotometricInterpretationtag in the root IFD.- See Also:
-
setTIFFCompressor
public void setTIFFCompressor(TIFFCompressor compressor) Sets theTIFFCompressorobject to be used by theImageWriterto encode each image strip or tile. A value ofnullallows the writer to choose its own TIFFCompressor.Note that invoking this method is not sufficient to set the compression type:
must be invoked explicitly for this purpose. The following code illustrates the correct procedure:setCompressionType()TIFFImageWriteParam writeParam; TIFFCompressor compressor; writeParam.setCompressionMode(writeParam.MODE_EXPLICIT); writeParam.setTIFFCompressor(compressor); writeParam.setCompressionType(compressor.getCompressionType());
IfcompressionTypeis set to a value different from that supported by theTIFFCompressorthen the compressor object will not be used.If the compression type supported by the supplied
TIFFCompressoris not among those in, then it will be appended to this array after removing any previously appended compression type. IfcompressionTypescompressorisnullthis will also cause any previously appended type to be removed from the array.- Parameters:
compressor- theTIFFCompressorto be used for encoding, ornullto allow the writer to choose its own.- Throws:
IllegalStateException- if the compression mode is notMODE_EXPLICIT.- See Also:
-
unsetColorConverter
public void unsetColorConverter()Removes any currently setColorConverterobject andPhotometricInterpretationtag value.
-