| java.lang.Object javax.media.jai.remote.SerializableRenderedImage
SerializableRenderedImage | final public class SerializableRenderedImage implements RenderedImage,Serializable(Code) | | A serializable wrapper class for classes which implement the
RenderedImage interface.
A SerializableRenderedImage provides a means to serialize
a RenderedImage . Transient fields are handled using
Serializer s registered with SerializerFactory .
Two means are available for providing the wrapped
RenderedImage data to a remote version of a
SerializableRenderedImage object: either via deep copy or by
"on-demand" copying. If a deep copy is requested, the entire image
Raster is copied during object serialization and tiles are
extracted from it as needed using the Raster.createChild()
method. If a deep copy is not used, the image data are transmitted
"on-demand" using socket communications. If the request is made on the
local host, the image data are provided in both cases merely by forwarding
the request to the wrapped RenderedImage . Note that a single
SerializableRenderedImage object should be able to service
multiple remote hosts.
The properties associated with the RenderedImage being
wrapped are serialized and accessible to a remote version of a
SerializableRenderedImage object. However it should be noted
that only those properties which are serializable are available to the
SerializableRenderedImage object.
This class makes no guarantee as to the stability of the data of the
wrapped image, at least in the case where a deep copy is not made.
Consequently if the data of a RenderedImage change but
affected tiles have already been transmitted then the modifications will
not be visible remotely. For example, this implies that a
SerializableRenderedImage should not be used to wrap a
RenderedOp the data of which are subject to change if the
chain in which the node is present is edited. Instead the
SerializableRenderedImage should be used to wrap the image
returned by invoking either getRendering() or
createInstance() on the RenderedOp . A similar
situation will obtain if the wrapped image is a
WritableRenderedImage . If in this case the wrapped image
is also a PlanarImage , then the image returned by
createSnapshot() should be wrapped instead.
An example of the usage of this class is as follows:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class SomeSerializableClass implements Serializable {
protected transient RenderedImage image;
// Fields omitted.
public SomeSerializableClass(RenderedImage image) {
this.image = image;
}
// Methods omitted.
// Serialization method.
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
out.writeObject(new SerializableRenderedImage(image));
}
// Deserialization method.
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
image = (RenderedImage)in.readObject();
}
}
See Also: java.awt.image.RenderedImage See Also: java.awt.image.WritableRenderedImage See Also: javax.media.jai.PlanarImage See Also: javax.media.jai.RenderedOp since: JAI 1.1 |
SerializableRenderedImage | SerializableRenderedImage()(Code) | | The default constructor.
|
SerializableRenderedImage | public SerializableRenderedImage(RenderedImage source, boolean useDeepCopy, OperationRegistry registry, String formatName, TileCodecParameterList encodingParam, TileCodecParameterList decodingParam) throws NotSerializableException(Code) | | Constructs a SerializableRenderedImage wrapper for a
RenderedImage source. Image data may be serialized
tile-by-tile or via a single deep copy. Tile encoding and
decoding may be effected via a TileEncoder and
TileDecoder specified by format name.
It may be noted that if the TileCodec utilizes
Serializer s for encoding the image data, and none
is available for the DataBuffer of the supplied
image, an error/exception may be encountered.
Parameters: source - The RenderedImage source. Parameters: useDeepCopy - Whether a deep copy of the entire image Rasterwill be made during object serialization. Parameters: registry - The OperationRegistry to use increating the TileEncoder . TheTileDecoder will of necessity becreated using the default OperationRegistry as the specified OperationRegistry is notserialized. If null the default registrywill be used. Parameters: formatName - The name of the format used to encode the data.If null simple tile serialization willbe performed either directly or by use of a "raw"TileCodec . Parameters: encodingParam - The parameters to be used for data encoding. Ifnull the default encodingTileCodecParameterList for thisformat will be used. Ignored ifformatName is null . Parameters: decodingParam - The parameters to be used for data decoding. Ifnull a complementaryTileCodecParameterList will bederived from encodingParam . Ignoredif formatName is null . exception: IllegalArgumentException - if source is null . exception: IllegalArgumentException - if no Serializer sare available for the types ofSampleModel , and ColorModel contained in the specified image. |
SerializableRenderedImage | public SerializableRenderedImage(RenderedImage source, boolean useDeepCopy)(Code) | | Constructs a SerializableRenderedImage wrapper for a
RenderedImage source. Image data may be serialized
tile-by-tile or via a single deep copy. No TileCodec
will be used, i.e., data will be transmitted using the serialization
protocol for Raster s.
Parameters: source - The RenderedImage source. Parameters: useDeepCopy - Whether a deep copy of the entire image Rasterwill be made during object serialization. exception: IllegalArgumentException - if source is null . exception: IllegalArgumentException - if no Serializer sare available for the types of DataBuffer ,SampleModel , and ColorModel contained in the specified image. |
SerializableRenderedImage | public SerializableRenderedImage(RenderedImage source)(Code) | | Constructs a SerializableRenderedImage wrapper for a
RenderedImage source. Image data will be serialized
tile-by-tile if possible. No TileCodec
will be used, i.e., data will be transmitted using the serialization
protocol for Raster s.
Parameters: source - The RenderedImage source. exception: IllegalArgumentException - if source is null . exception: IllegalArgumentException - if no Serializer sare available for the types of DataBuffer ,SampleModel , and ColorModel contained in the specified image. |
copyData | public WritableRaster copyData(WritableRaster dest)(Code) | | |
dispose | public void dispose()(Code) | | Provides a hint that an image will no longer be accessed from a
reference in user space. The results are equivalent to those
that occur when the program loses its last reference to this
image, the garbage collector discovers this, and finalize is
called. This can be used as a hint in situations where waiting
for garbage collection would be overly conservative, e.g., there
are a large number of socket connections which may be opened to
transmit tile data.
SerializableRenderedImage defines this method to
behave as follows:
- if the image is acting as a server, i.e., has never been
serialized and may be providing data to serialized
versions of itself, it makes itself unavailable to further
client requests and closes its socket;
- if the image is acting as a client, i.e., has been serialized
and may be requesting data from a remote, pre-serialization version
of itself, it sends a message to its remote self indicating that it
will no longer be making requests.
The results of referencing an image after a call to
dispose() are undefined.
|
finalize | protected void finalize() throws Throwable(Code) | | If a deep copy is not being used, unset the data server availability
flag and wait for the server thread to rejoin the current thread.
|
getData | public Raster getData()(Code) | | |
getHeight | public int getHeight()(Code) | | |
getImageID | public Object getImageID()(Code) | | Returns a unique identifier (UID) for this RenderedImage .
This UID may be used when the potential redundancy of the value
returned by the hashCode() method is unacceptable.
An example of this is in generating a key for storing image tiles
in a cache.
|
getMinTileX | public int getMinTileX()(Code) | | |
getMinTileY | public int getMinTileY()(Code) | | |
getMinX | public int getMinX()(Code) | | |
getMinY | public int getMinY()(Code) | | |
getNumXTiles | public int getNumXTiles()(Code) | | |
getNumYTiles | public int getNumYTiles()(Code) | | |
getSampleModel | public SampleModel getSampleModel()(Code) | | |
getSources | public Vector getSources()(Code) | | If this SerializableRenderedImage has not been
serialized, this method returns a Vector containing
only the RenderedImage passed to the constructor; if
this image has been deserialized, it returns null .
|
getTile | public Raster getTile(int tileX, int tileY)(Code) | | |
getTileGridXOffset | public int getTileGridXOffset()(Code) | | |
getTileGridYOffset | public int getTileGridYOffset()(Code) | | |
getTileHeight | public int getTileHeight()(Code) | | |
getTileWidth | public int getTileWidth()(Code) | | |
getWidth | public int getWidth()(Code) | | |
|
|