org.geotools.image.io
Class ImageIOExt

Object
  extended by ImageIOExt

public class ImageIOExt
extends Object

Provides an alternative source of image input and output streams that uses optimized behavior.

Currently implemented optimizations:

Since:
2.7.2
Author:
Andrea Aime - GeoSolutions

Constructor Summary
ImageIOExt()
           
 
Method Summary
static
<T extends ImageReaderWriterSpi>
void
allowNativeCodec(String format, Class<T> category, boolean allowed)
          Allows or disallows native acceleration for the specified image format.
static ImageInputStream createImageInputStream(Object input)
          Returns a ImageOutputStream suitable for writing on the specified input
static ImageOutputStream createImageOutputStream(RenderedImage image, Object destination)
          Builds a ImageOutputStream writing to destination, based on logic that involves the image size
static File getCacheDirectory()
          Returns the cache directory used by ImageIOExt, either the manually configured one, or the result of calling ImageIO.getCacheDirectory()
static Long getFilesystemThreshold()
          The threshold at which the class will flip from MemoryCacheImageOutputStream to FileCacheImageOutputStream.
static ImageInputStreamSpi getImageInputStreamSPI(Object input)
          Get a proper ImageInputStreamSpi instance for the provided Object input without trying to create an ImageInputStream.
static ImageInputStreamSpi getImageInputStreamSPI(Object input, boolean streamCreationCheck)
          Get a proper ImageInputStreamSpi instance for the provided Object input.
static ImageReader getImageioReader(ImageInputStream inStream)
          Look for an ImageReader instance that is able to read the provided ImageInputStream, which must be non null.
static boolean isCLibAvailable()
          Tells me whether or not the native libraries for JAI/ImageIO are active or not.
static void setCacheDirectory(File cache)
          Sets the directory where cache files are to be created.
static void setFilesystemThreshold(Long filesystemThreshold)
          Sets the memory/file usage threshold (or null to have the code fall back on ImageIO behavior)
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImageIOExt

public ImageIOExt()
Method Detail

createImageOutputStream

public static ImageOutputStream createImageOutputStream(RenderedImage image,
                                                        Object destination)
                                                 throws IOException
Builds a ImageOutputStream writing to destination, based on logic that involves the image size

Parameters:
image - the image to be written on the destination (can be null)
destination - the destination
Returns:
Throws:
IOException

createImageInputStream

public static ImageInputStream createImageInputStream(Object input)
                                               throws IOException
Returns a ImageOutputStream suitable for writing on the specified input

Parameters:
destination -
Returns:
Throws:
IOException

getCacheDirectory

public static File getCacheDirectory()
Returns the cache directory used by ImageIOExt, either the manually configured one, or the result of calling ImageIO.getCacheDirectory()


setCacheDirectory

public static void setCacheDirectory(File cache)
Sets the directory where cache files are to be created. If set to null (the default value) ImageIO.getCacheDirectory() will be used as the value

Parameters:
cacheDirectory - a File specifying a directory.

getFilesystemThreshold

public static Long getFilesystemThreshold()
The threshold at which the class will flip from MemoryCacheImageOutputStream to FileCacheImageOutputStream. If the in memory, uncompressed image size is lower than the threshold a MemoryCacheImageOutputStream will be returned, otherwise a FileCacheImageOutputStream will be used instead

Returns:

setFilesystemThreshold

public static void setFilesystemThreshold(Long filesystemThreshold)
Sets the memory/file usage threshold (or null to have the code fall back on ImageIO behavior)

Parameters:
filesystemThreshold -
See Also:
getFilesystemThreshold()

allowNativeCodec

public static <T extends ImageReaderWriterSpi> void allowNativeCodec(String format,
                                                                     Class<T> category,
                                                                     boolean allowed)
Allows or disallows native acceleration for the specified image format. By default, the image I/O extension for JAI provides native acceleration for PNG and JPEG. Unfortunatly, those native codec has bug in their 1.0 version. Invoking this method will force the use of standard codec provided in J2SE 1.4.

Implementation note: the current implementation assume that JAI codec class name start with "CLib". It work for Sun's 1.0 implementation, but may change in future versions. If this method doesn't recognize the class name, it does nothing.

Parameters:
format - The format name (e.g. "png").
category - ImageReaderSpi.class to set the reader, or ImageWriterSpi.class to set the writer.
allowed - false to disallow native acceleration.

getImageInputStreamSPI

public static final ImageInputStreamSpi getImageInputStreamSPI(Object input)
Get a proper ImageInputStreamSpi instance for the provided Object input without trying to create an ImageInputStream.

See Also:
getImageInputStreamSPI(Object, boolean)

getImageInputStreamSPI

public static final ImageInputStreamSpi getImageInputStreamSPI(Object input,
                                                               boolean streamCreationCheck)
Get a proper ImageInputStreamSpi instance for the provided Object input.

Parameters:
input - the input object for which we need to find a proper ImageInputStreamSpi instance
streamCreationCheck - if true, when a proper ImageInputStreamSpi have been found for the provided input, use it to try creating an ImageInputStream on top of the input.
Returns:
an ImageInputStreamSpi instance.

isCLibAvailable

public static boolean isCLibAvailable()
Tells me whether or not the native libraries for JAI/ImageIO are active or not.

Returns:
false in case the JAI/ImageIO native libs are not in the path, true otherwise.

getImageioReader

public static ImageReader getImageioReader(ImageInputStream inStream)
Look for an ImageReader instance that is able to read the provided ImageInputStream, which must be non null.

In case no reader is found, null is returned.

Parameters:
inStream - an instance of ImageInputStream for which we need to find a suitable ImageReader.
Returns:
a suitable instance of ImageReader or null if one cannot be found.


Copyright © 1996-2014 Geotools. All Rights Reserved.