org.geotools.image.io |
package org.geotools.image.io
Extensions to {@link javax.imageio.ImageReader} for binary and ASCII files.
{@link org.geotools.image.io.StreamImageReader} is the base
class for image decoders reading stream with few (if any) meta-data. Examples
of such streams are matrix containing the pixels values in a binary form (RAW
images), or ASCII files containing values written as decimal numbers. Such files
contain often geophysical values (e.g. temperature in Celsius degrees, elevation
in metres, etc.) better represented as floating point numbers than integers.
By default, {@link org.geotools.image.io.StreamImageReader}
stores decoded image using data type {@link java.awt.image.DataBuffer#TYPE_FLOAT}
and a grayscale color space. This politic produce images matching closely the
original data, i.e. it involves as few transformations as possible. But
displaying floating-point images is usually very slow. Users are strongly
encouraged to use Java
Advanced Imaging's operations after reading in order to scale data as
they see fit. The example below reformats the {@link java.awt.image.DataBuffer#TYPE_FLOAT}
data into {@link java.awt.image.DataBuffer#TYPE_BYTE} and changes the grayscale
colors to an indexed color model.
import {@link javax.media.jai.JAI javax.media.jai.JAI};
import {@link javax.media.jai.ImageLayout javax.media.jai.ImageLayout};
import {@link java.awt.RenderingHints java.awt.RenderingHints};
import {@link java.awt.image.DataBuffer java.awt.image.DataBuffer};
import {@link java.awt.image.IndexColorModel java.awt.image.IndexColorModel};
import {@link java.awt.image.renderable.ParameterBlock java.awt.image.renderable.ParameterBlock};
// Omitting class and method declaration...
/*
* Prepare the indexed color model. Arrays
* R, G and B should contains 256 RGB values.
*/
final byte[] R=...
final byte[] G=...
final byte[] B=...
final IndexColorModel colors = new IndexColorModel(8, 256, R,G,B);
final ImageLayout layout = new ImageLayout().setColorModel(colorModel);
final RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, layout);
/*
* Rescale the image. First, all pixels values are transformed using
* the equation pi=CO+C1*p. Then, type float is clamp to type byte and
* the new index color model is set. Displaying such an image should
* be much faster.
*/
final double C0 = ...
final double C1 = ...
image = JAI.create("Rescale", new ParameterBlock().addSource(image).add(new double[]{C1}).add(new double[]{C0}));
image = JAI.create("Format", new ParameterBlock().addSource(image).add(DataBuffer.TYPE_BYTE), hints);
|
|
Java Source File Name | Type | Comment |
ContinuousPalette.java | Class | A factory for building
suitable for
DataBuffer.TYPE_FLOAT . |
FileImageReader.java | Class | Base class for image readers that require
File input source. |
GeographicImageReader.java | Class | Base class for readers of geographic images. |
GeographicImageReaderTest.java | Class | Tests
GeographicImageReader . |
GeographicImageReadParam.java | Class | Default parameters for
GeographicImageReader . |
GeographicImageWriter.java | Class | Base class for writers of geographic images. |
GeographicImageWriterTest.java | Class | Tests
GeographicImageWriter , especially the
RectIter creation. |
IIOListeners.java | Class | A container of image I/O listeners. |
IIOReadProgressAdapter.java | Class | An abstract adapter class for receiving image progress events.
The methods in this class are empty. |
IndexedPalette.java | Class | A set of RGB colors created by a
from a name.
A palette can creates an
or an
from the RGB colors. |
InputStreamAdapter.java | Class | Wraps an
ImageInputStream into a standard
InputStream . |
NullImageReader.java | Class | A null implementation of
GeographicImageReader for testing purpose. |
OutputStreamAdapter.java | Class | Wraps an
ImageOutputStream into a standard
OutputStream . |
Palette.java | Class | A set of RGB colors created by a
from
a
. |
PaletteDisposer.java | Class | Allows garbage-collection of
Palette after their index color model has been
garbage collected. |
PaletteFactory.java | Class | A factory for
created from RGB values listed
in files. |
PaletteTest.java | Class | Tests
Palette and
PaletteFactory . |
RawBinaryImageReadParam.java | Class | A class describing how a raw binary stream is to be decoded. |
SampleConverter.java | Class | Converts samples from the values stored in the image file to the values stored in the
. |
ScaledColorSpace.java | Class | Color space for images storing pixels as real numbers. |
SimpleImageReader.java | Class | Base class for simple image decoders. |
StreamImageReader.java | Class | Base class for simple image decoders. |
StreamImageWriter.java | Class | Base class for simple image encoders. |
SubsampledRectIter.java | Class | A
RectIter with subsampling. |