Class RecyclingTileFactory
- Object
-
- Observable
-
- RecyclingTileFactory
-
- All Implemented Interfaces:
Observer,TileFactory,TileRecycler
public class RecyclingTileFactory extends Observable implements TileFactory, TileRecycler, Observer
A simple implementation ofTileFactorywherein the tiles returned fromcreateTile()attempt to re-use primitive arrays provided by theTileRecyclermethodrecycleTile().A simple example of the use of this class is as follows wherein image files are read, each image is filtered, and each output written to a file:
String[] sourceFiles; // source file paths KernelJAI kernel; // filtering kernel // Create a RenderingHints object and set hints. RenderingHints rh = new RenderingHints(null); RecyclingTileFactory rtf = new RecyclingTileFactory(); rh.put(JAI.KEY_TILE_RECYCLER, rtf); rh.put(JAI.KEY_TILE_FACTORY, rtf); rh.put(JAI.KEY_IMAGE_LAYOUT, new ImageLayout().setTileWidth(32).setTileHeight( 32)); int counter = 0; // Read each image, filter it, and save the output to a file. for (int i = 0; i < sourceFiles.length; i++) { PlanarImage source = JAI.create("fileload", sourceFiles[i]); ParameterBlock pb = (new ParameterBlock()).addSource(source).add(kernel); // The TileFactory hint will cause tiles to be created by 'rtf'. RenderedOp dest = JAI.create("convolve", pb, rh); String fileName = "image_" + (++counter) + ".tif"; JAI.create("filestore", dest, fileName); // The TileRecycler hint will cause arrays to be reused by 'rtf'. dest.dispose(); }In the above code, if theSampleModelof all source images is identical, then data arrays should only be created in the first iteration.- Since:
- JAI 1.1.2
-
-
Constructor Summary
Constructors Constructor Description RecyclingTileFactory(Observable tileCache)Constructs aRecyclingTileFactory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanReclaimMemory()Returnstrue.WritableRastercreateTile(SampleModel sampleModel, Point location)voidflush()longgetMemoryUsed()booleanisMemoryCache()Returnstrue.voidrecycleTile(Raster tile)Recycle the given tile.voidupdate(Observable o, Object arg)-
Methods inherited from class Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
-
-
-
Constructor Detail
-
RecyclingTileFactory
public RecyclingTileFactory(Observable tileCache)
Constructs aRecyclingTileFactory.
-
-
Method Detail
-
canReclaimMemory
public boolean canReclaimMemory()
Returnstrue.- Specified by:
canReclaimMemoryin interfaceTileFactory
-
isMemoryCache
public boolean isMemoryCache()
Returnstrue.- Specified by:
isMemoryCachein interfaceTileFactory
-
getMemoryUsed
public long getMemoryUsed()
- Specified by:
getMemoryUsedin interfaceTileFactory
-
flush
public void flush()
- Specified by:
flushin interfaceTileFactory
-
createTile
public WritableRaster createTile(SampleModel sampleModel, Point location)
- Specified by:
createTilein interfaceTileFactory
-
recycleTile
public void recycleTile(Raster tile)
Recycle the given tile.- Specified by:
recycleTilein interfaceTileRecycler
-
update
public void update(Observable o, Object arg)
-
-