org.geotools.image.io.text
Class TextImageWriter

java.lang.Object
  extended by javax.imageio.ImageWriter
      extended by org.geotools.image.io.GeographicImageWriter
          extended by org.geotools.image.io.StreamImageWriter
              extended by org.geotools.image.io.text.TextImageWriter
All Implemented Interfaces:
javax.imageio.ImageTranscoder
Direct Known Subclasses:
TextMatrixImageWriter

public abstract class TextImageWriter
extends StreamImageWriter

Base class for text image encoders. "Text images" are usually ASCII files containing pixel values (often geophysical values, like sea level anomalies).

Since:
2.4
Version:
$Id: TextImageWriter.java 30679 2008-06-13 10:19:41Z acuster $
Author:
Martin Desruisseaux (IRD)

Nested Class Summary
static class TextImageWriter.Spi
          Service provider interface (SPI) for TextImageWriters.
 
Field Summary
 
Fields inherited from class org.geotools.image.io.StreamImageWriter
closeOnReset
 
Fields inherited from class javax.imageio.ImageWriter
availableLocales, locale, originatingProvider, output, progressListeners, warningListeners, warningLocales
 
Constructor Summary
protected TextImageWriter(javax.imageio.spi.ImageWriterSpi provider)
          Constructs a TextImageWriter.
 
Method Summary
protected  void close()
          Closes the writer created by #getWriter().
protected  java.text.NumberFormat createNumberFormat(javax.imageio.IIOImage image, javax.imageio.ImageWriteParam parameters)
          Returns a number format to be used for formatting the sample values in the given image.
protected  java.nio.charset.Charset getCharset(javax.imageio.ImageWriteParam parameters)
          Returns the character set to use for encoding the string to the output stream.
protected  java.util.Locale getDataLocale(javax.imageio.ImageWriteParam parameters)
          Returns the locale to use for encoding values, or null for the default.
protected  java.text.FieldPosition getExpectedFractionPosition(java.text.NumberFormat format)
          Returns the expected position of the fraction part for numbers to be formatted using the given format.
protected  java.lang.String getLineSeparator(javax.imageio.ImageWriteParam parameters)
          Returns the line separator to use when writing to the output stream.
protected  java.io.BufferedWriter getWriter(javax.imageio.ImageWriteParam parameters)
          Returns the output as an buffered writer.
 
Methods inherited from class org.geotools.image.io.StreamImageWriter
dispose, finalize, getOutputStream, reset, setOutput
 
Methods inherited from class org.geotools.image.io.GeographicImageWriter
canWriteRasters, computeSize, convertImageMetadata, convertStreamMetadata, createRectIter, getDefaultImageMetadata, getDefaultStreamMetadata, processImageComplete, processImageStarted, processThumbnailComplete, processThumbnailStarted, processWarningOccurred, processWarningOccurred, warningOccurred
 
Methods inherited from class javax.imageio.ImageWriter
abort, abortRequested, addIIOWriteProgressListener, addIIOWriteWarningListener, canInsertEmpty, canInsertImage, canRemoveImage, canReplaceImageMetadata, canReplacePixels, canReplaceStreamMetadata, canWriteEmpty, canWriteSequence, clearAbortRequest, endInsertEmpty, endReplacePixels, endWriteEmpty, endWriteSequence, getAvailableLocales, getDefaultWriteParam, getLocale, getNumThumbnailsSupported, getOriginatingProvider, getOutput, getPreferredThumbnailSizes, prepareInsertEmpty, prepareReplacePixels, prepareWriteEmpty, prepareWriteSequence, processImageProgress, processImageStarted, processThumbnailProgress, processThumbnailStarted, processWarningOccurred, processWarningOccurred, processWriteAborted, removeAllIIOWriteProgressListeners, removeAllIIOWriteWarningListeners, removeIIOWriteProgressListener, removeIIOWriteWarningListener, removeImage, replaceImageMetadata, replacePixels, replacePixels, replaceStreamMetadata, setLocale, write, write, write, writeInsert, writeToSequence
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextImageWriter

protected TextImageWriter(javax.imageio.spi.ImageWriterSpi provider)
Constructs a TextImageWriter.

Parameters:
originatingProvider - The ImageWriterSpi that is constructing this object, or null.
Method Detail

getDataLocale

protected java.util.Locale getDataLocale(javax.imageio.ImageWriteParam parameters)
Returns the locale to use for encoding values, or null for the default. The default implementation returns the locale specified to the TextImageWriter.Spi object given to this TextImageWriter constructor. Subclasses can override this method if they want to specify the data locale in some other way.

Note: This locale should not be confused with ImageWriter.getLocale().

Parameters:
parameters - The write parameters, or null for the defaults.
Returns:
The locale to use for parsing numbers in the image file.
See Also:
TextImageWriter.Spi.locale

getCharset

protected java.nio.charset.Charset getCharset(javax.imageio.ImageWriteParam parameters)
                                       throws java.io.IOException
Returns the character set to use for encoding the string to the output stream. The default implementation returns the character set specified to the TextImageWriter.Spi object given to this TextImageWriter constructor. Subclasses can override this method if they want to specify the character encoding in some other way.

Parameters:
parameters - The write parameters, or null for the defaults.
Returns:
The character encoding, or null for the platform default encoding.
Throws:
java.io.IOException - If reading from the output stream failed.
See Also:
TextImageWriter.Spi.charset

getLineSeparator

protected java.lang.String getLineSeparator(javax.imageio.ImageWriteParam parameters)
Returns the line separator to use when writing to the output stream. The default implementation returns the line separator specified to the TextImageWriter.Spi object given to this TextImageWriter constructor. Subclasses can override this method if they want to specify the line separator in some other way.

Parameters:
parameters - The write parameters, or null for the defaults.
Returns:
The line separator to use for writting the image.
See Also:
TextImageWriter.Spi.lineSeparator

getWriter

protected java.io.BufferedWriter getWriter(javax.imageio.ImageWriteParam parameters)
                                    throws java.lang.IllegalStateException,
                                           java.io.IOException
Returns the output as an buffered writer. If the output is already a buffered writer, it is returned unchanged. Otherwise this method creates a new buffered writer from various output types including File, URL, URLConnection, Writer, OutputStream and ImageOutputStream.

This method creates a new writer only when first invoked. All subsequent calls will returns the same instance. Consequently, the returned writer should never be closed by the caller. It may be closed automatically when setOutput(Object), reset() or dispose() methods are invoked.

Parameters:
parameters - The write parameters, or null for the defaults.
Returns:
ImageWriter.getOutput() as a BufferedWriter.
Throws:
java.lang.IllegalStateException - if the output is not set.
java.io.IOException - If the output stream can't be created for an other reason.
See Also:
ImageWriter.getOutput(), StreamImageWriter.getOutputStream()

createNumberFormat

protected java.text.NumberFormat createNumberFormat(javax.imageio.IIOImage image,
                                                    javax.imageio.ImageWriteParam parameters)
Returns a number format to be used for formatting the sample values in the given image.

Parameters:
image - The image or raster to be written.
parameters - The write parameters, or null if the whole image will be written.
Returns:
A number format appropriate for the given image.

getExpectedFractionPosition

protected java.text.FieldPosition getExpectedFractionPosition(java.text.NumberFormat format)
Returns the expected position of the fraction part for numbers to be formatted using the given format. This method should be invoked after createNumberFormat(javax.imageio.IIOImage, javax.imageio.ImageWriteParam), but the given format doesn't need to be the instance returned by the later.

Parameters:
format - The format to be used for formatting numbers.
Returns:
The expected position of the fraction part.

close

protected void close()
              throws java.io.IOException
Closes the writer created by #getWriter(). This method does nothing if the writer is the output instance given by the user rather than a writer created by this class from a File or URL output.

Overrides:
close in class StreamImageWriter
Throws:
java.io.IOException - if an error occured while closing the stream.
See Also:
StreamImageWriter.closeOnReset


Copyright © 1996-2010 Geotools. All Rights Reserved.