org.geotools.image.io
Class TextImageReader

java.lang.Object
  extended byjavax.imageio.ImageReader
      extended byorg.geotools.image.io.SimpleImageReader
          extended byorg.geotools.image.io.TextImageReader
Direct Known Subclasses:
TextMatrixImageReader, TextRecordImageReader

public abstract class TextImageReader
extends SimpleImageReader

Base class for text image decoders. "Text images" are usually ASCII files containing pixel values (often geophysical values, like sea level anomalies). This base class provides a convenient way to get BufferedReader for reading lines.

accepts many input types, including File, URL, Reader, InputStream and ImageInputStream. The TextImageReader.Spi provider automatically advises those input types. The above cited provided also provides a convenient way to control the character encoding, with the charset field. Developer can gain yet more control on character encoding by overriding the getCharset(java.io.InputStream) method.

Since:
2.1
Version:
$Id: TextImageReader.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux

Nested Class Summary
static class TextImageReader.Spi
          Service provider interface (SPI) for TextImageReaders.
 
Field Summary
 
Fields inherited from class javax.imageio.ImageReader
availableLocales, ignoreMetadata, input, locale, minIndex, originatingProvider, progressListeners, seekForwardOnly, updateListeners, warningListeners, warningLocales
 
Constructor Summary
protected TextImageReader(javax.imageio.spi.ImageReaderSpi provider)
          Construct a new image reader storing pixels as DataBuffer.TYPE_FLOAT.
protected TextImageReader(javax.imageio.spi.ImageReaderSpi provider, int rawImageType)
          Construct a new image reader storing pixels in buffer of the specified type.
 
Method Summary
 java.nio.charset.Charset getCharset(java.io.InputStream input)
          Retourne l'encodage des caract?res qui seront ? lire.
 LineFormat getLineFormat(int imageIndex)
          Retourne l'objet ? utiliser pour lire chaque ligne d'une image.
 double getPadValue(int imageIndex)
          Retourne la valeur repr?sentant les donn?es manquantes, ou Double.NaN s'il n'y en a pas.
protected  java.lang.String getPositionString(java.lang.String message)
          Retourne une cha?ne de caract?res donnant la position actuelle du flot.
 int getRawDataType(int imageIndex)
          Returns the data type which most closely represents the "raw" internal data of the image.
protected  java.io.BufferedReader getReader()
          Retourne l'entr? ImageReader.input sous forme d'objet BufferedReader.
 void reset()
          Remet ce d?codeur dans son ?tat initial.
 void setInput(java.lang.Object input, boolean seekForwardOnly, boolean ignoreMetadata)
          Sp?cifie le flot ? utiliser en entr?.
 
Methods inherited from class org.geotools.image.io.SimpleImageReader
getExpectedRange, getImageMetadata, getImageTypes, getNumBands, getNumImages, getRawImageType, getStreamMetadata
 
Methods inherited from class javax.imageio.ImageReader
abort, abortRequested, addIIOReadProgressListener, addIIOReadUpdateListener, addIIOReadWarningListener, canReadRaster, checkReadParamBandSettings, clearAbortRequest, computeRegions, dispose, getAspectRatio, getAvailableLocales, getDefaultReadParam, getDestination, getFormatName, getHeight, getImageMetadata, getInput, getLocale, getMinIndex, getNumThumbnails, getOriginatingProvider, getSourceRegion, getStreamMetadata, getThumbnailHeight, getThumbnailWidth, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getWidth, hasThumbnails, isIgnoringMetadata, isImageTiled, isRandomAccessEasy, isSeekForwardOnly, processImageComplete, processImageProgress, processImageStarted, processImageUpdate, processPassComplete, processPassStarted, processReadAborted, processSequenceComplete, processSequenceStarted, processThumbnailComplete, processThumbnailPassComplete, processThumbnailPassStarted, processThumbnailProgress, processThumbnailStarted, processThumbnailUpdate, processWarningOccurred, processWarningOccurred, read, read, readAll, readAll, readAsRenderedImage, readerSupportsThumbnails, readRaster, readThumbnail, readTile, readTileRaster, removeAllIIOReadProgressListeners, removeAllIIOReadUpdateListeners, removeAllIIOReadWarningListeners, removeIIOReadProgressListener, removeIIOReadUpdateListener, removeIIOReadWarningListener, setInput, setInput, setLocale
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextImageReader

protected TextImageReader(javax.imageio.spi.ImageReaderSpi provider)
Construct a new image reader storing pixels as DataBuffer.TYPE_FLOAT.

Parameters:
provider - the ImageReaderSpi that is invoking this constructor, or null.

TextImageReader

protected TextImageReader(javax.imageio.spi.ImageReaderSpi provider,
                          int rawImageType)
Construct a new image reader storing pixels in buffer of the specified type.

Parameters:
provider - the ImageReaderSpi that is invoking this constructor, or null.
rawImageType - The buffer type. It should be a constant from DataBuffer. Common types are DataBuffer.TYPE_INT, DataBuffer.TYPE_FLOAT and DataBuffer.TYPE_DOUBLE.
Method Detail

getRawDataType

public int getRawDataType(int imageIndex)
                   throws java.io.IOException
Returns the data type which most closely represents the "raw" internal data of the image. Default implementation returns the argument provided at construction time.

Overrides:
getRawDataType in class SimpleImageReader
Parameters:
imageIndex - The index of the image to be queried.
Returns:
The data type ( by default).
Throws:
java.io.IOException - If an error occurs reading the format information from the input source.

getCharset

public java.nio.charset.Charset getCharset(java.io.InputStream input)
                                    throws java.io.IOException
Retourne l'encodage des caract?res qui seront ? lire. L'impl?mentation par d?faut retourne l'encodage sp?cifi? dans l'objet TextImageReader.Spi qui a cr?? ce d?codeur. Les classes d?riv?es peuvent red?finir cette m?thode pour d?terminer l'encodage d'une fa?on plus ?labor?e.

Parameters:
input - Flot ? lire.
Returns:
Encodage du flot ? lire, ou pour utiliser l'encodage par d?faut de la plateforme locale.
Throws:
java.io.IOException - si une lecture du flot ?tait n?cessaire et a ?chou?.
See Also:
TextImageReader.Spi.charset

getLineFormat

public LineFormat getLineFormat(int imageIndex)
                         throws java.io.IOException
Retourne l'objet ? utiliser pour lire chaque ligne d'une image. L'impl?mentation par d?faut construit un nouvel objet LineFormat en utilisant les conventions locales sp?cifi?es par TextImageReader.Spi.locale. Les classes d?riv?es peuvent red?finir cette m?thode pour construire un objet LineFormat d'une fa?on plus ?labor?e.

Parameters:
imageIndex - Index de l'image ? lire.
Throws:
java.io.IOException - si l'op?ration n?cessitait une lecture du fichier (par exemple des informations inscrites dans un en-t?te) et que cette lecture a ?chou?e.

getPadValue

public double getPadValue(int imageIndex)
                   throws java.io.IOException
Retourne la valeur repr?sentant les donn?es manquantes, ou Double.NaN s'il n'y en a pas. Cette valeur s'appliquera ? toutes les colonnes du fichier sauf les colonnes des x et des y. L'impl?mentation par d?faut retourne la valeur qui avait ?t? sp?cifi?e dans l'objet TextImageReader.Spi qui a cr?? ce d?codeur. Les classes d?riv?es peuvent red?finir cette m?thode pour d?terminer cette valeur d'une fa?on plus ?labor?e.

Parameters:
imageIndex - Index de l'image ? lire.
Throws:
java.io.IOException - si l'op?ration n?cessitait une lecture du fichier (par exemple des informations inscrites dans un en-t?te) et que cette lecture a ?chou?e.

getReader

protected final java.io.BufferedReader getReader()
                                          throws java.io.IOException
Retourne l'entr? ImageReader.input sous forme d'objet BufferedReader. Si possible, cette m?thode tentera de retourner plus sp?cifiquement un objet LineNumberReader. Cette m?thode convertira automatiquement les objets de classes File, URL, Reader, InputStream et ImageInputStream.

Cette m?thode ne construira un nouveau objet Reader que la premi?re fois o? elle sera appel?e. Tous les appels subs?quents retourneront le Reader ouvert. En cons?quent, ce flot ne doit pas ?tre ferm?. Les m?thodes et reset() s'occuperont de le fermer si n?cessaire.

Returns:
ImageReader.getInput() sous forme de flot LineNumberReader si possible, ou BufferedReader sinon.
Throws:
java.io.IOException - si le flot n'a pas pu ?tre ouvert.

setInput

public void setInput(java.lang.Object input,
                     boolean seekForwardOnly,
                     boolean ignoreMetadata)
Sp?cifie le flot ? utiliser en entr?. Si un autre flot ?tait ouvert avant l'appel de cette m?thode, il sera ferm?.

Overrides:
setInput in class SimpleImageReader
Parameters:
input - The input object to use for future decoding.
seekForwardOnly - If true, images and metadata may only be read in ascending order from this input source.
ignoreMetadata - If true, metadata may be ignored during reads.

getPositionString

protected java.lang.String getPositionString(java.lang.String message)
Retourne une cha?ne de caract?res donnant la position actuelle du flot. La cha?ne retourn?e sera par exemple "Ligne 14 dans le fichier HUV18204.asc". Cette m?thode retourne si la position du flot n'a pas pu ?tre d?termin?e.

Parameters:
message - Un message optionel ? placer apr?s la position, ou s'il n'y en a pas.

reset

public void reset()
Remet ce d?codeur dans son ?tat initial. Si un flot avait ?t? ouvert, il sera ferm?.



Copyright © GeoTools. All Rights Reserved.