org.apache.batik.transcoder.image
Class ImageTranscoder

java.lang.Object
  extended by org.apache.batik.transcoder.TranscoderSupport
      extended by org.apache.batik.transcoder.AbstractTranscoder
          extended by org.apache.batik.transcoder.XMLAbstractTranscoder
              extended by org.apache.batik.transcoder.SVGAbstractTranscoder
                  extended by org.apache.batik.transcoder.image.ImageTranscoder
All Implemented Interfaces:
Transcoder
Direct Known Subclasses:
JPEGTranscoder, PNGTranscoder, TIFFTranscoder

public abstract class ImageTranscoder
extends SVGAbstractTranscoder

This class enables to transcode an input to an image of any format.

Two transcoding hints (KEY_WIDTH and KEY_HEIGHT) can be used to respectively specify the image width and the image height. If only one of these keys is specified, the transcoder preserves the aspect ratio of the original image.

The KEY_BACKGROUND_COLOR defines the background color to use for opaque image formats, or the background color that may be used for image formats that support alpha channel.

The KEY_AOI represents the area of interest to paint in device space.

Three additional transcoding hints that act on the SVG processor can be specified:

KEY_LANGUAGE to set the default language to use (may be used by a <switch> SVG element for example), KEY_USER_STYLESHEET_URI to fix the URI of a user stylesheet, and KEY_MM_PER_PIXEL to specify the number of millimeters in each pixel .


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.batik.transcoder.SVGAbstractTranscoder
SVGAbstractTranscoder.SVGAbstractTranscoderUserAgent
 
Field Summary
static TranscodingHints.Key KEY_BACKGROUND_COLOR
          The image background paint key.
static TranscodingHints.Key KEY_FORCE_TRANSPARENT_WHITE
          The forceTransparentWhite key.
 
Fields inherited from class org.apache.batik.transcoder.SVGAbstractTranscoder
builder, ctx, curAOI, curTxf, DEFAULT_ALLOWED_SCRIPT_TYPES, DEFAULT_DEFAULT_FONT_FAMILY, height, KEY_ALLOWED_SCRIPT_TYPES, KEY_ALTERNATE_STYLESHEET, KEY_AOI, KEY_CONSTRAIN_SCRIPT_ORIGIN, KEY_DEFAULT_FONT_FAMILY, KEY_EXECUTE_ONLOAD, KEY_HEIGHT, KEY_LANGUAGE, KEY_MAX_HEIGHT, KEY_MAX_WIDTH, KEY_MEDIA, KEY_PIXEL_TO_MM, KEY_PIXEL_UNIT_TO_MILLIMETER, KEY_SNAPSHOT_TIME, KEY_USER_STYLESHEET_URI, KEY_WIDTH, root, userAgent, width
 
Fields inherited from class org.apache.batik.transcoder.XMLAbstractTranscoder
KEY_DOCUMENT_ELEMENT, KEY_DOCUMENT_ELEMENT_NAMESPACE_URI, KEY_DOM_IMPLEMENTATION, KEY_XML_PARSER_CLASSNAME, KEY_XML_PARSER_VALIDATING
 
Fields inherited from class org.apache.batik.transcoder.TranscoderSupport
handler, hints
 
Constructor Summary
protected ImageTranscoder()
          Constructs a new ImageTranscoder.
 
Method Summary
abstract  BufferedImage createImage(int width, int height)
          Creates a new image with the specified dimension.
protected  ImageRenderer createRenderer()
          Method so subclasses can modify the Renderer used to render document.
protected  void forceTransparentWhite(BufferedImage img, SinglePixelPackedSampleModel sppsm)
          Converts an image so that viewers which do not support the alpha channel will see a white background (and not a black one).
protected  void transcode(Document document, String uri, TranscoderOutput output)
          Transcodes the specified Document as an image in the specified output.
abstract  void writeImage(BufferedImage img, TranscoderOutput output)
          Writes the specified image to the specified output.
 
Methods inherited from class org.apache.batik.transcoder.SVGAbstractTranscoder
createBridgeContext, createBridgeContext, createBridgeContext, createDocumentFactory, createUserAgent, getCanvasGraphicsNode, setImageSize, transcode
 
Methods inherited from class org.apache.batik.transcoder.TranscoderSupport
addTranscodingHint, getErrorHandler, getTranscodingHints, removeTranscodingHint, setErrorHandler, setTranscodingHints, setTranscodingHints
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.batik.transcoder.Transcoder
addTranscodingHint, getErrorHandler, getTranscodingHints, removeTranscodingHint, setErrorHandler, setTranscodingHints, setTranscodingHints
 

Field Detail

KEY_BACKGROUND_COLOR

public static final TranscodingHints.Key KEY_BACKGROUND_COLOR
The image background paint key.

Key:

KEY_BACKGROUND_COLOR

Value:

Paint

Default:

null

Required:

No

Description:

Specify the background color to use. The color is required by opaque image formats and is used by image formats that support alpha channel.


KEY_FORCE_TRANSPARENT_WHITE

public static final TranscodingHints.Key KEY_FORCE_TRANSPARENT_WHITE
The forceTransparentWhite key.

Key:

KEY_FORCE_TRANSPARENT_WHITE

Value:

Boolean

Default:

false

Required:

No

Description:

It controls whether the encoder should force the image's fully transparent pixels to be fully transparent white instead of fully transparent black. This is usefull when the encoded file is displayed in a browser which does not support transparency correctly and lets the image display with a white background instead of a black background.
However, note that the modified image will display differently over a white background in a viewer that supports transparency.
Not all Transcoders use this key (in particular some formats can't preserve the alpha channel at all in which case this is not used.

Constructor Detail

ImageTranscoder

protected ImageTranscoder()
Constructs a new ImageTranscoder.

Method Detail

transcode

protected void transcode(Document document,
                         String uri,
                         TranscoderOutput output)
                  throws TranscoderException
Transcodes the specified Document as an image in the specified output.

Overrides:
transcode in class SVGAbstractTranscoder
Parameters:
document - the document to transcode
uri - the uri of the document or null if any
output - the ouput where to transcode
Throws:
TranscoderException - if an error occured while transcoding

createRenderer

protected ImageRenderer createRenderer()
Method so subclasses can modify the Renderer used to render document.


forceTransparentWhite

protected void forceTransparentWhite(BufferedImage img,
                                     SinglePixelPackedSampleModel sppsm)
Converts an image so that viewers which do not support the alpha channel will see a white background (and not a black one).

Parameters:
img - the image to convert
sppsm -

createImage

public abstract BufferedImage createImage(int width,
                                          int height)
Creates a new image with the specified dimension.

Parameters:
width - the image width in pixels
height - the image height in pixels

writeImage

public abstract void writeImage(BufferedImage img,
                                TranscoderOutput output)
                         throws TranscoderException
Writes the specified image to the specified output.

Parameters:
img - the image to write
output - the output where to store the image
Throws:
TranscoderException - if an error occured while storing the image


Copyright © 2008 Apache Software Foundation. All Rights Reserved.