Package org.esa.snap.core.util
Class ImageUtils
java.lang.Object
org.esa.snap.core.util.ImageUtils
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 -
Method Summary
Modifier and TypeMethodDescriptionstatic 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
(RenderedImage image, int level, Dimension tileSize) 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) Creates a new image layout for the specified level.static javax.media.jai.ImageLayout
buildImageLayout
(Integer dataBufferType, int imageWidth, int imageHeight, int level, Dimension tileSize, int topLeftTileWidth, int topLeftTileHeight) Creates a new image layout for the specified level.static javax.media.jai.ImageLayout
buildTileImageLayout
(Integer dataBufferType, int width, int height, int level, Dimension tileSize) 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
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)
-
Constructor Details
-
ImageUtils
public ImageUtils()
-
-
Method Details
-
buildImageLayout
public static javax.media.jai.ImageLayout buildImageLayout(RenderedImage image, int level, Dimension tileSize) Creates a new image layout for the specified level.- Parameters:
image
- the image to create an image layout forlevel
- the level for which the image layout is createdtileSize
- 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) 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 tileSize, 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 createdtileSize
- 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(Integer dataBufferType, int width, int height, int level, Dimension tileSize) 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 modelwidth
- the width of the imageheight
- the height of the imagelevel
- the level for which the image layout is createdtileSize
- 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
-
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
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:
-
getDataTypeName
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:
-
getColorSpaceName
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:
-
createGreyscaleColorModelImage
-
createIndexedImage
public static BufferedImage createIndexedImage(int width, int height, byte[] data, IndexColorModel cm) -
create8BitGreyscaleColorModel
-
getPrimitiveArray
-
createDataBufferArray
-
createSingleBandedSampleModel
-
createRenderedImage
-