Package org.esa.snap.core.util
Class ImageUtils
- java.lang.Object
-
- org.esa.snap.core.util.ImageUtils
-
public class ImageUtils extends Object
A utility class providing a set of static functions frequently used when working with images.All functions have been implemented with extreme caution in order to provide a maximum performance.
- Version:
- $Revision$ $Date$
-
-
Constructor Summary
Constructors Constructor Description ImageUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static CrsGeoCoding
buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, int defaultWidth, int defaultHeight, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds)
static CrsGeoCoding
buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, int defaultWidth, int defaultHeight, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds, double referencePixelX, double referencePixelY)
static CrsGeoCoding
buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, Dimension defaultSize, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds)
static CrsGeoCoding
buildCrsGeoCoding(Point2D.Double coordinateUpperLeft, Point2D.Double resolution, Dimension defaultSize, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds)
static javax.media.jai.ImageLayout
buildImageLayout(Integer dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize)
Creates a new image layout for the specified level.static javax.media.jai.ImageLayout
buildImageLayout(Integer dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize, int topLeftTileWidth, int topLeftTileHeight)
Creates a new image layout for the specified level.static javax.media.jai.ImageLayout
buildTileImageLayout(int dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize)
Creates the image layout of a tile image for the specified level.static int
computeLevelSize(int sourceSize, int level)
static double
computeLevelSizeAsDouble(int sourceSize, int level)
static Dimension
computeSceneRasterSize(int defaultSceneRasterWidth, int defaultSceneRasterHeight, Dimension regionRasterSize)
static int
computeTileCount(int imageSize, int tileSize)
static BufferedImage
convertImage(RenderedImage image, int imageType)
Converts the given rendered image into an image of the given {#link java.awt.image.BufferedImage} type.static ColorModel
create8BitGreyscaleColorModel()
static Object
createDataBufferArray(int dataBufferType, int size)
static BufferedImage
createGreyscaleColorModelImage(int width, int height, byte[] data)
static BufferedImage
createIndexedImage(int width, int height, byte[] data, IndexColorModel cm)
static RenderedImage
createRenderedImage(int width, int height, ProductData data)
static SampleModel
createSingleBandedSampleModel(int dataBufferType, int width, int height)
static String
getColorSpaceName(int spaceType)
Gets a textual representation of the supplied color space typestatic double[]
getDataTypeMinMax(int dataType, double[] minmax)
Returns an array containing the minimum and maximum value of the native data type used to store pixel values in the given image.static String
getDataTypeName(int dataType)
Gets a textual representation of the supplied raster data typestatic Object
getPrimitiveArray(DataBuffer dataBuffer)
-
-
-
Method Detail
-
buildImageLayout
public static javax.media.jai.ImageLayout buildImageLayout(Integer dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize)
Creates a new image layout for the specified level.- Parameters:
dataBufferType
- the buffer type of the sample model or null if no the sample model to createimageWidth
- the width of the imageimageHeight
- the height of the imagelevel
- the level for which the image layout is createddefaultJAIReadTileSize
- the default JAI tile size- Returns:
- the image layout
-
buildImageLayout
public static javax.media.jai.ImageLayout buildImageLayout(Integer dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize, int topLeftTileWidth, int topLeftTileHeight)
Creates a new image layout for the specified level. The level tile size is the minimum size between the default JAI tile size and the size of the first tile from the left top corner.- Parameters:
dataBufferType
- the buffer type of the sample model or null if no the sample model to createimageWidth
- the width of the imageimageHeight
- the height of the imagelevel
- the level for which the image layout is createddefaultJAIReadTileSize
- the default JAI tile sizetopLeftTileWidth
- the tile width from the left top corner of the final imagetopLeftTileHeight
- the tile height from the left top corner of the final image- Returns:
- the image layout
-
buildTileImageLayout
public static javax.media.jai.ImageLayout buildTileImageLayout(int dataBufferType, int imageWidth, int imageHeight, int level, Dimension defaultJAIReadTileSize)
Creates the image layout of a tile image for the specified level. The level tile size is smaller than the level image size.- Parameters:
dataBufferType
- the buffer type of the sample modelimageWidth
- the width of the imageimageHeight
- the height of the imagelevel
- the level for which the image layout is createddefaultJAIReadTileSize
- the default JAI tile size- Returns:
- the image layout
-
buildCrsGeoCoding
public static CrsGeoCoding buildCrsGeoCoding(Point2D.Double coordinateUpperLeft, Point2D.Double resolution, Dimension defaultSize, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds) throws org.opengis.referencing.FactoryException, org.opengis.referencing.operation.TransformException
- Throws:
org.opengis.referencing.FactoryException
org.opengis.referencing.operation.TransformException
-
buildCrsGeoCoding
public static CrsGeoCoding buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, Dimension defaultSize, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds) throws org.opengis.referencing.FactoryException, org.opengis.referencing.operation.TransformException
- Throws:
org.opengis.referencing.FactoryException
org.opengis.referencing.operation.TransformException
-
buildCrsGeoCoding
public static CrsGeoCoding buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, int defaultWidth, int defaultHeight, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds) throws org.opengis.referencing.FactoryException, org.opengis.referencing.operation.TransformException
- Throws:
org.opengis.referencing.FactoryException
org.opengis.referencing.operation.TransformException
-
buildCrsGeoCoding
public static CrsGeoCoding buildCrsGeoCoding(double coordinateUpperLeftX, double coordinateUpperLeftY, double resolutionX, double resolutionY, int defaultWidth, int defaultHeight, org.opengis.referencing.crs.CoordinateReferenceSystem mapCRS, Rectangle subsetBounds, double referencePixelX, double referencePixelY) throws org.opengis.referencing.FactoryException, org.opengis.referencing.operation.TransformException
- Throws:
org.opengis.referencing.FactoryException
org.opengis.referencing.operation.TransformException
-
computeSceneRasterSize
public static Dimension computeSceneRasterSize(int defaultSceneRasterWidth, int defaultSceneRasterHeight, Dimension regionRasterSize)
-
computeTileCount
public static int computeTileCount(int imageSize, int tileSize)
-
computeLevelSizeAsDouble
public static double computeLevelSizeAsDouble(int sourceSize, int level)
-
computeLevelSize
public static int computeLevelSize(int sourceSize, int level)
-
convertImage
public static BufferedImage convertImage(RenderedImage image, int imageType)
Converts the given rendered image into an image of the given {#link java.awt.image.BufferedImage} type.- Parameters:
image
- the source imageimageType
- the {#link java.awt.image.BufferedImage} type- Returns:
- the buffered image of the given type
-
getDataTypeMinMax
public static double[] getDataTypeMinMax(int dataType, double[] minmax)
Returns an array containing the minimum and maximum value of the native data type used to store pixel values in the given image.- Parameters:
dataType
- a data type as defined inDataBuffer
- See Also:
DataBuffer
-
getDataTypeName
public static String getDataTypeName(int dataType)
Gets a textual representation of the supplied raster data type- Parameters:
dataType
- a data type as defined inDataBuffer
- Returns:
- a textual representation of the supplied raster data type
- See Also:
DataBuffer
-
getColorSpaceName
public static String getColorSpaceName(int spaceType)
Gets a textual representation of the supplied color space type- Parameters:
spaceType
- a dcolor space type as defined inColorSpace
- Returns:
- a textual representation of the color space
- See Also:
ColorSpace
-
createGreyscaleColorModelImage
public static BufferedImage createGreyscaleColorModelImage(int width, int height, byte[] data)
-
createIndexedImage
public static BufferedImage createIndexedImage(int width, int height, byte[] data, IndexColorModel cm)
-
create8BitGreyscaleColorModel
public static ColorModel create8BitGreyscaleColorModel()
-
getPrimitiveArray
public static Object getPrimitiveArray(DataBuffer dataBuffer)
-
createDataBufferArray
public static Object createDataBufferArray(int dataBufferType, int size)
-
createSingleBandedSampleModel
public static SampleModel createSingleBandedSampleModel(int dataBufferType, int width, int height)
-
createRenderedImage
public static RenderedImage createRenderedImage(int width, int height, ProductData data)
-
-