org.apache.wicket.markup.html.image.resource
Class BufferedDynamicImageResource

java.lang.Object
  extended by org.apache.wicket.request.resource.AbstractResource
      extended by org.apache.wicket.request.resource.DynamicImageResource
          extended by org.apache.wicket.markup.html.image.resource.BufferedDynamicImageResource
All Implemented Interfaces:
java.io.Serializable, IClusterable, IResource

public class BufferedDynamicImageResource
extends DynamicImageResource

A DynamicImageResource subclass that holds a BufferedImage generated by code elsewhere. The image is held in a non-transient field, and so if this resource is clustered, the entire image will be serialized and copied. If you can regenerate your image by drawing on a Graphics2D, you should prefer the RenderedDynamicImageResource class instead since its image data is transient and therefore it is very lightweight when clustered.

The format of the image (and therefore the resource's extension) can be specified with setFormat(String). The default format is "PNG" because JPEG is lossy and makes generated images look bad and GIF has patent issues.

Author:
Jonathan Locke
See Also:
RenderedDynamicImageResource, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.request.resource.AbstractResource
AbstractResource.ResourceResponse, AbstractResource.WriteCallback
 
Nested classes/interfaces inherited from interface org.apache.wicket.request.resource.IResource
IResource.Attributes
 
Field Summary
 
Fields inherited from class org.apache.wicket.request.resource.AbstractResource
INTERNAL_HEADERS
 
Constructor Summary
BufferedDynamicImageResource()
          Construct.
BufferedDynamicImageResource(java.lang.String format)
          Construct.
 
Method Summary
protected  byte[] getImageData(IResource.Attributes attributes)
          Get image data for our dynamic image resource.
 void setImage(java.awt.image.BufferedImage image)
           
 
Methods inherited from class org.apache.wicket.request.resource.DynamicImageResource
configureResponse, getFormat, newResourceResponse, setFormat, setLastModifiedTime, toImageData
 
Methods inherited from class org.apache.wicket.request.resource.AbstractResource
configureCache, getCachingStrategy, respond, setResponseHeaders
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BufferedDynamicImageResource

public BufferedDynamicImageResource()
Construct.


BufferedDynamicImageResource

public BufferedDynamicImageResource(java.lang.String format)
Construct.

Parameters:
format -
Method Detail

setImage

public void setImage(java.awt.image.BufferedImage image)
Parameters:
image - The image to set

getImageData

protected byte[] getImageData(IResource.Attributes attributes)
Description copied from class: DynamicImageResource
Get image data for our dynamic image resource. If the subclass regenerates the data, it should set the DynamicImageResource.setLastModifiedTime(Time) when it does so. This ensures that image caching works correctly.

Specified by:
getImageData in class DynamicImageResource
Parameters:
attributes - the context bringing the request, response and the parameters
Returns:
The image data for this dynamic image. null means there is no image and 404 (Not found) response will be return.


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.