org.cresques.io
Class MrSidFile

java.lang.Object
  extended byorg.cresques.io.GeoFile
      extended byorg.cresques.io.GeoRasterFile
          extended byorg.cresques.io.MrSidFile
All Implemented Interfaces:
Extent.Has, Projected

public class MrSidFile
extends GeoRasterFile

Author:
Nacho Brodin Clase encargada del acceso a los datos y repintado de imagenes MrSID. Estos son registrados con la extensión sid

Field Summary
static int BAND_HEIGHT
           
protected  org.cresques.io.MrSidNative file
           
 
Fields inherited from class org.cresques.io.GeoRasterFile
bandCount, bBandNr, BLUE_BAND, doTransparency, gBandNr, GREEN_BAND, rBandNr, RED_BAND, tFilter, updatable
 
Fields inherited from class org.cresques.io.GeoFile
bytesReaded, extent, lineCnt
 
Constructor Summary
MrSidFile(IProjection proj, java.lang.String fName)
          Contructor.
 
Method Summary
 void close()
          Libera el objeto que ha abierto el fichero
 int getBlockSize()
          Devuelve el tamaño de bloque
 java.lang.Object getData(int x, int y, int band)
          Obtiene el valor del raster en la coordenada que se le pasa.
 int getHeight()
          Obtiene el alto de la imagen
 Extent getView()
          Obtiene el Extent de la vista
 int getWidth()
          Obtiene el ancho de la imagen
 byte[] getWindow(int ulX, int ulY, int sizeX, int sizeY, int band)
          Devuelve los datos de una ventana solicitada
 GeoFile load()
          Carga un fichero raster.
 void reProject(ICoordTrans rp)
          Reproyección.
 void setBand(int flag, int bandNr)
          Asigna una banda R, G o B
protected  void setRGBLine(java.awt.image.BufferedImage image, int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
          Asigna al objeto Image los valores con los dato de la imagen contenidos en el vector de enteros.
protected  void setRGBLine(java.awt.image.BufferedImage image, int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize, int flags)
          Asigna al objeto Image la mezcla entre los valores que ya tiene y los valores con los datos de la imagen contenidos en el vector de enteros.
protected  void setRGBLine(java.awt.image.BufferedImage image, int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize, int origBand, int destBandFlag)
          Asigna al objeto Image la mezcla entre los valores que ya tiene y los valores con los dato de la imagen contenidos en el vector de enteros.
 void setView(Extent e)
          Asigna el extent de la vista
 java.awt.Image updateImage(int width, int height, ICoordTrans rp)
          Actualiza la imagen.
 java.awt.Image updateImage(int width, int height, ICoordTrans rp, java.awt.Image img, int origBand, int destBandFlag)
          Actualiza la/s banda/s especificadas en la imagen.
 
Methods inherited from class org.cresques.io.GeoRasterFile
cornersToWorldFile, fileIsSupported, getAlpha, getBand, getBandCount, getContour, getDataType, getObjects, getTransparency, openFile, printWF, registerExtension, saveWF, setAlpha, setDataType, setTransparency, setTransparency, setUpdatable
 
Methods inherited from class org.cresques.io.GeoFile
filterWS, getExtent, getFileSize, getName, getProjection, getTime, setFileSize, setName, setProjection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BAND_HEIGHT

public static final int BAND_HEIGHT
See Also:
Constant Field Values

file

protected org.cresques.io.MrSidNative file
Constructor Detail

MrSidFile

public MrSidFile(IProjection proj,
                 java.lang.String fName)
Contructor. Abre el fichero mrsid

Parameters:
proj - Proyección
fName - Nombre del fichero mrsid
Method Detail

load

public GeoFile load()
Description copied from class: GeoRasterFile
Carga un fichero raster. Puede usarse para calcular el extent e instanciar un objeto de este tipo.

Specified by:
load in class GeoRasterFile

close

public void close()
Libera el objeto que ha abierto el fichero

Specified by:
close in class GeoRasterFile

setBand

public void setBand(int flag,
                    int bandNr)
Asigna una banda R, G o B

Overrides:
setBand in class GeoRasterFile
Parameters:
flag - cual (o cuales) de las bandas.

setView

public void setView(Extent e)
Asigna el extent de la vista

Specified by:
setView in class GeoRasterFile
Parameters:
e - Extent

getView

public Extent getView()
Obtiene el Extent de la vista

Specified by:
getView in class GeoRasterFile
Returns:
Extent

getWidth

public int getWidth()
Obtiene el ancho de la imagen

Specified by:
getWidth in class GeoRasterFile
Returns:
Ancho de la imagen

getHeight

public int getHeight()
Obtiene el alto de la imagen

Specified by:
getHeight in class GeoRasterFile
Returns:
Ancho de la imagen

reProject

public void reProject(ICoordTrans rp)
Description copied from class: GeoRasterFile
Reproyección.

Specified by:
reProject in interface Projected
Specified by:
reProject in class GeoRasterFile
Parameters:
rp - Coordenadas de la transformación

updateImage

public java.awt.Image updateImage(int width,
                                  int height,
                                  ICoordTrans rp)
Actualiza la imagen. Se encarga de llamar a la función que calcula la vista y luego a la que lee la escena sobre un buffer. Vuelca la información obtenida sobre el Image que la visualiza.

Specified by:
updateImage in class GeoRasterFile
Parameters:
width - ancho
height - alto
rp - Reproyección
Returns:
img

setRGBLine

protected void setRGBLine(java.awt.image.BufferedImage image,
                          int startX,
                          int startY,
                          int w,
                          int h,
                          int[] rgbArray,
                          int offset,
                          int scansize)
Asigna al objeto Image los valores con los dato de la imagen contenidos en el vector de enteros.

Parameters:
image - imagen con los datos actuales
startX - inicio de la posición en X dentro de la imagen
startY - inicio de la posición en X dentro de la imagen
w - Ancho de la imagen
h - Alto de la imagen
rgbArray - vector que contiene la banda que se va a sustituir
offset - desplazamiento
scansize - tamaño de imagen recorrida por cada p

setRGBLine

protected void setRGBLine(java.awt.image.BufferedImage image,
                          int startX,
                          int startY,
                          int w,
                          int h,
                          int[] rgbArray,
                          int offset,
                          int scansize,
                          int flags)
Asigna al objeto Image la mezcla entre los valores que ya tiene y los valores con los datos de la imagen contenidos en el vector de enteros. De los valores RGB que ya contiene se mantienen las bandas que no coinciden con el valor de flags. La banda correspondiente a flags es sustituida por los datos del vector.

Parameters:
image - imagen con los datos actuales
startX - inicio de la posición en X dentro de la imagen
startY - inicio de la posición en X dentro de la imagen
w - Ancho de la imagen
h - Alto de la imagen
rgbArray - vector que contiene la banda que se va a sustituir
offset - desplazamiento
scansize - tamaño de imagen recorrida por cada paso
flags - banda que se va a sustituir (Ctes de GeoRasterFile)

setRGBLine

protected void setRGBLine(java.awt.image.BufferedImage image,
                          int startX,
                          int startY,
                          int w,
                          int h,
                          int[] rgbArray,
                          int offset,
                          int scansize,
                          int origBand,
                          int destBandFlag)
Asigna al objeto Image la mezcla entre los valores que ya tiene y los valores con los dato de la imagen contenidos en el vector de enteros. De los valores RGB que ya contiene se mantienen las bandas que no coinciden con el valor de flags. La banda correspondiente a flags es sustituida por los datos del vector.

Parameters:
image - imagen con los datos actuales
startX - inicio de la posición en X dentro de la imagen
startY - inicio de la posición en X dentro de la imagen
w - Ancho de la imagen
h - Alto de la imagen
rgbArray - vector que contiene la banda que se va a sustituir
offset - desplazamiento
scansize - tamaño de imagen recorrida por cada paso
origBand - Banda origen del GeoRasterFile
destBandFlag - banda que se va a sustituir (Ctes de GeoRasterFile)

updateImage

public java.awt.Image updateImage(int width,
                                  int height,
                                  ICoordTrans rp,
                                  java.awt.Image img,
                                  int origBand,
                                  int destBandFlag)
Description copied from class: GeoRasterFile
Actualiza la/s banda/s especificadas en la imagen.

Specified by:
updateImage in class GeoRasterFile
Parameters:
width - ancho
height - alto
rp - reproyección
img - imagen
Returns:
img

getData

public java.lang.Object getData(int x,
                                int y,
                                int band)
Description copied from class: GeoRasterFile
Obtiene el valor del raster en la coordenada que se le pasa. El valor será Double, Int, Byte, etc. dependiendo del tipo de raster.

Specified by:
getData in class GeoRasterFile
Parameters:
x - coordenada X
y - coordenada Y
Returns:

getWindow

public byte[] getWindow(int ulX,
                        int ulY,
                        int sizeX,
                        int sizeY,
                        int band)
Devuelve los datos de una ventana solicitada

Specified by:
getWindow in class GeoRasterFile
Parameters:
ulX - coordenada X superior izda.
ulY - coordenada Y superior derecha.
sizeX - tamaño en X de la ventana.
sizeY - tamaño en Y de la ventana.
band - Banda solicitada.

getBlockSize

public int getBlockSize()
Devuelve el tamaño de bloque

Specified by:
getBlockSize in class GeoRasterFile
Returns:
Tamaño de bloque