Class SimpleRenderedImage

java.lang.Object
org.apache.xmlgraphics.image.codec.util.SimpleRenderedImage
All Implemented Interfaces:
RenderedImage
Direct Known Subclasses:
SingleTileRenderedImage

public abstract class SimpleRenderedImage extends Object implements RenderedImage
A simple class implemented the RenderedImage interface. Only the getTile() method needs to be implemented by subclasses. The instance variables must also be filled in properly.

Normally in JAI PlanarImage is used for this purpose, but in the interest of modularity the use of PlanarImage has been avoided.

Version:
$Id$
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected ColorModel
    The image's ColorModel.
    protected int
    The image's height in pixels.
    protected int
    The X coordinate of the image's upper-left pixel.
    protected int
    The Y coordinate of the image's upper-left pixel.
    protected Map
    A Hashtable containing the image properties.
    protected SampleModel
    The image's SampleModel.
    protected int
    The X coordinate of the upper-left pixel of tile (0, 0).
    protected int
    The Y coordinate of the upper-left pixel of tile (0, 0).
    protected int
    The height of a tile.
    protected int
    The width of a tile.
    protected int
    The image's width in pixels.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Converts a pixel's X coordinate into a horizontal tile index.
    static int
    convertXToTileX(int x, int tileGridXOffset, int tileWidth)
    Converts a pixel's X coordinate into a horizontal tile index relative to a given tile grid layout specified by its X offset and tile width.
    int
    Converts a pixel's Y coordinate into a vertical tile index.
    static int
    convertYToTileY(int y, int tileGridYOffset, int tileHeight)
    Converts a pixel's Y coordinate into a vertical tile index relative to a given tile grid layout specified by its Y offset and tile height.
    Copies an arbitrary rectangular region of the RenderedImage into a caller-supplied WritableRaster.
    Returns a Rectangle indicating the image bounds.
    Returns the ColorModel of the image.
    Returns the entire image in a single Raster.
    Returns an arbitrary rectangular region of the RenderedImage in a Raster.
    int
    Returns the height of the image.
    int
    Returns the horizontal index of the rightmost column of tiles.
    int
    Returns the vertical index of the bottom row of tiles.
    final int
    Returns the X coordinate of the column immediatetely to the right of the rightmost column of the image.
    final int
    Returns the Y coordinate of the row immediately below the bottom row of the image.
    int
    Returns the horizontal index of the leftmost column of tiles.
    int
    Returns the vertical index of the uppermost row of tiles.
    int
    Returns the X coordinate of the leftmost column of the image.
    int
    Returns the X coordinate of the uppermost row of the image.
    int
    Returns the number of tiles along the tile grid in the horizontal direction.
    int
    Returns the number of tiles along the tile grid in the vertical direction.
    Gets a property from the property set of this image.
    Returns a list of the properties recognized by this image.
    Returns an array of Strings recognized as names by this property source that begin with the supplied prefix.
    Returns the SampleModel of the image.
     
    int
    Returns the X coordinate of the upper-left pixel of tile (0, 0).
    int
    Returns the Y coordinate of the upper-left pixel of tile (0, 0).
    int
    Returns the height of a tile.
    int
    Returns the width of a tile.
    int
    Returns the width of the image.
    int
    tileXToX(int tx)
    Converts a horizontal tile index into the X coordinate of its upper left pixel.
    static int
    tileXToX(int tx, int tileGridXOffset, int tileWidth)
    Converts a horizontal tile index into the X coordinate of its upper left pixel relative to a given tile grid layout specified by its X offset and tile width.
    int
    tileYToY(int ty)
    Converts a vertical tile index into the Y coordinate of its upper left pixel.
    static int
    tileYToY(int ty, int tileGridYOffset, int tileHeight)
    Converts a vertical tile index into the Y coordinate of its upper left pixel relative to a given tile grid layout specified by its Y offset and tile height.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.awt.image.RenderedImage

    getTile
  • Field Details

    • minX

      protected int minX
      The X coordinate of the image's upper-left pixel.
    • minY

      protected int minY
      The Y coordinate of the image's upper-left pixel.
    • width

      protected int width
      The image's width in pixels.
    • height

      protected int height
      The image's height in pixels.
    • tileWidth

      protected int tileWidth
      The width of a tile.
    • tileHeight

      protected int tileHeight
      The height of a tile.
    • tileGridXOffset

      protected int tileGridXOffset
      The X coordinate of the upper-left pixel of tile (0, 0).
    • tileGridYOffset

      protected int tileGridYOffset
      The Y coordinate of the upper-left pixel of tile (0, 0).
    • sampleModel

      protected SampleModel sampleModel
      The image's SampleModel.
    • colorModel

      protected ColorModel colorModel
      The image's ColorModel.
    • properties

      protected Map properties
      A Hashtable containing the image properties.
  • Constructor Details

    • SimpleRenderedImage

      public SimpleRenderedImage()
  • Method Details

    • getMinX

      public int getMinX()
      Returns the X coordinate of the leftmost column of the image.
      Specified by:
      getMinX in interface RenderedImage
    • getMaxX

      public final int getMaxX()
      Returns the X coordinate of the column immediatetely to the right of the rightmost column of the image. getMaxX() is implemented in terms of getMinX() and getWidth() and so does not need to be implemented by subclasses.
    • getMinY

      public int getMinY()
      Returns the X coordinate of the uppermost row of the image.
      Specified by:
      getMinY in interface RenderedImage
    • getMaxY

      public final int getMaxY()
      Returns the Y coordinate of the row immediately below the bottom row of the image. getMaxY() is implemented in terms of getMinY() and getHeight() and so does not need to be implemented by subclasses.
    • getWidth

      public int getWidth()
      Returns the width of the image.
      Specified by:
      getWidth in interface RenderedImage
    • getHeight

      public int getHeight()
      Returns the height of the image.
      Specified by:
      getHeight in interface RenderedImage
    • getBounds

      public Rectangle getBounds()
      Returns a Rectangle indicating the image bounds.
    • getTileWidth

      public int getTileWidth()
      Returns the width of a tile.
      Specified by:
      getTileWidth in interface RenderedImage
    • getTileHeight

      public int getTileHeight()
      Returns the height of a tile.
      Specified by:
      getTileHeight in interface RenderedImage
    • getTileGridXOffset

      public int getTileGridXOffset()
      Returns the X coordinate of the upper-left pixel of tile (0, 0).
      Specified by:
      getTileGridXOffset in interface RenderedImage
    • getTileGridYOffset

      public int getTileGridYOffset()
      Returns the Y coordinate of the upper-left pixel of tile (0, 0).
      Specified by:
      getTileGridYOffset in interface RenderedImage
    • getMinTileX

      public int getMinTileX()
      Returns the horizontal index of the leftmost column of tiles. getMinTileX() is implemented in terms of getMinX() and so does not need to be implemented by subclasses.
      Specified by:
      getMinTileX in interface RenderedImage
    • getMaxTileX

      public int getMaxTileX()
      Returns the horizontal index of the rightmost column of tiles. getMaxTileX() is implemented in terms of getMaxX() and so does not need to be implemented by subclasses.
    • getNumXTiles

      public int getNumXTiles()
      Returns the number of tiles along the tile grid in the horizontal direction. getNumXTiles() is implemented in terms of getMinTileX() and getMaxTileX() and so does not need to be implemented by subclasses.
      Specified by:
      getNumXTiles in interface RenderedImage
    • getMinTileY

      public int getMinTileY()
      Returns the vertical index of the uppermost row of tiles. getMinTileY() is implemented in terms of getMinY() and so does not need to be implemented by subclasses.
      Specified by:
      getMinTileY in interface RenderedImage
    • getMaxTileY

      public int getMaxTileY()
      Returns the vertical index of the bottom row of tiles. getMaxTileY() is implemented in terms of getMaxY() and so does not need to be implemented by subclasses.
    • getNumYTiles

      public int getNumYTiles()
      Returns the number of tiles along the tile grid in the vertical direction. getNumYTiles() is implemented in terms of getMinTileY() and getMaxTileY() and so does not need to be implemented by subclasses.
      Specified by:
      getNumYTiles in interface RenderedImage
    • getSampleModel

      public SampleModel getSampleModel()
      Returns the SampleModel of the image.
      Specified by:
      getSampleModel in interface RenderedImage
    • getColorModel

      public ColorModel getColorModel()
      Returns the ColorModel of the image.
      Specified by:
      getColorModel in interface RenderedImage
    • getProperty

      public Object getProperty(String name)
      Gets a property from the property set of this image. If the property name is not recognized, null will be returned.
      Specified by:
      getProperty in interface RenderedImage
      Parameters:
      name - the name of the property to get, as a String.
      Returns:
      a reference to the property Object, or the value null
    • getPropertyNames

      public String[] getPropertyNames()
      Returns a list of the properties recognized by this image. If no properties are available, an empty String[] will be returned.
      Specified by:
      getPropertyNames in interface RenderedImage
      Returns:
      an array of Strings representing valid property names.
    • getPropertyNames

      public String[] getPropertyNames(String prefix)
      Returns an array of Strings recognized as names by this property source that begin with the supplied prefix. If no property names match, null will be returned. The comparison is done in a case-independent manner.

      The default implementation calls getPropertyNames() and searches the list of names for matches.

      Returns:
      an array of Strings giving the valid property names (can be null).
    • convertXToTileX

      public static int convertXToTileX(int x, int tileGridXOffset, int tileWidth)
      Converts a pixel's X coordinate into a horizontal tile index relative to a given tile grid layout specified by its X offset and tile width.
    • convertYToTileY

      public static int convertYToTileY(int y, int tileGridYOffset, int tileHeight)
      Converts a pixel's Y coordinate into a vertical tile index relative to a given tile grid layout specified by its Y offset and tile height.
    • convertXToTileX

      public int convertXToTileX(int x)
      Converts a pixel's X coordinate into a horizontal tile index. This is a convenience method. No attempt is made to detect out-of-range coordinates.
      Parameters:
      x - the X coordinate of a pixel.
      Returns:
      the X index of the tile containing the pixel.
    • convertYToTileY

      public int convertYToTileY(int y)
      Converts a pixel's Y coordinate into a vertical tile index. This is a convenience method. No attempt is made to detect out-of-range coordinates.
      Parameters:
      y - the Y coordinate of a pixel.
      Returns:
      the Y index of the tile containing the pixel.
    • tileXToX

      public static int tileXToX(int tx, int tileGridXOffset, int tileWidth)
      Converts a horizontal tile index into the X coordinate of its upper left pixel relative to a given tile grid layout specified by its X offset and tile width.
    • tileYToY

      public static int tileYToY(int ty, int tileGridYOffset, int tileHeight)
      Converts a vertical tile index into the Y coordinate of its upper left pixel relative to a given tile grid layout specified by its Y offset and tile height.
    • tileXToX

      public int tileXToX(int tx)
      Converts a horizontal tile index into the X coordinate of its upper left pixel. This is a convenience method. No attempt is made to detect out-of-range indices.
      Parameters:
      tx - the horizontal index of a tile.
      Returns:
      the X coordinate of the tile's upper left pixel.
    • tileYToY

      public int tileYToY(int ty)
      Converts a vertical tile index into the Y coordinate of its upper left pixel. This is a convenience method. No attempt is made to detect out-of-range indices.
      Parameters:
      ty - the vertical index of a tile.
      Returns:
      the Y coordinate of the tile's upper left pixel.
    • getSources

      public Vector getSources()
      Specified by:
      getSources in interface RenderedImage
    • getData

      public Raster getData()
      Returns the entire image in a single Raster. For images with multiple tiles this will require making a copy.

      The returned Raster is semantically a copy. This means that updates to the source image will not be reflected in the returned Raster. For non-writable (immutable) source images, the returned value may be a reference to the image's internal data. The returned Raster should be considered non-writable; any attempt to alter its pixel data (such as by casting it to WritableRaster or obtaining and modifying its DataBuffer) may result in undefined behavior. The copyData method should be used if the returned Raster is to be modified.

      Specified by:
      getData in interface RenderedImage
      Returns:
      a Raster containing a copy of this image's data.
    • getData

      public Raster getData(Rectangle bounds)
      Returns an arbitrary rectangular region of the RenderedImage in a Raster. The rectangle of interest will be clipped against the image bounds.

      The returned Raster is semantically a copy. This means that updates to the source image will not be reflected in the returned Raster. For non-writable (immutable) source images, the returned value may be a reference to the image's internal data. The returned Raster should be considered non-writable; any attempt to alter its pixel data (such as by casting it to WritableRaster or obtaining and modifying its DataBuffer) may result in undefined behavior. The copyData method should be used if the returned Raster is to be modified.

      Specified by:
      getData in interface RenderedImage
      Parameters:
      bounds - the region of the RenderedImage to be returned.
    • copyData

      public WritableRaster copyData(WritableRaster dest)
      Copies an arbitrary rectangular region of the RenderedImage into a caller-supplied WritableRaster. The region to be computed is determined by clipping the bounds of the supplied WritableRaster against the bounds of the image. The supplied WritableRaster must have a SampleModel that is compatible with that of the image.

      If the raster argument is null, the entire image will be copied into a newly-created WritableRaster with a SampleModel that is compatible with that of the image.

      Specified by:
      copyData in interface RenderedImage
      Parameters:
      dest - a WritableRaster to hold the returned portion of the image.
      Returns:
      a reference to the supplied WritableRaster, or to a new WritableRaster if the supplied one was null.