org.apache.poi.sl.draw
Class ImageRenderer

java.lang.Object
  extended by org.apache.poi.sl.draw.ImageRenderer

public class ImageRenderer
extends java.lang.Object

For now this class renders only images supported by the javax.imageio.ImageIO framework. Subclasses can override this class to support other formats, for example, use Apache Batik to render WMF, PICT can be rendered using Apple QuickTime API for Java:

 
 public class MyImageRendener extends ImageRendener {
     InputStream data;

     public boolean drawImage(Graphics2D graphics,Rectangle2D anchor,Insets clip) {
         // draw image
       DataInputStream is = new DataInputStream(data);
       org.apache.batik.transcoder.wmf.tosvg.WMFRecordStore wmfStore =
               new org.apache.batik.transcoder.wmf.tosvg.WMFRecordStore();
       try {
           wmfStore.read(is);
       } catch (IOException e){
           return;
       }

       float scale = (float)anchor.width/wmfStore.getWidthPixels();

       org.apache.batik.transcoder.wmf.tosvg.WMFPainter painter =
               new org.apache.batik.transcoder.wmf.tosvg.WMFPainter(wmfStore, 0, 0, scale);
       graphics.translate(anchor.x, anchor.y);
       painter.paint(graphics);
     }

     public void loadImage(InputStream data, String contentType) throws IOException {
         if ("image/wmf".equals(contentType)) {
             this.data = data;
             // use Apache Batik to handle WMF
         } else {
             super.loadImage(data,contentType);
         }
     }
 }
 
 
and then pass this class to your instance of java.awt.Graphics2D:
 
 graphics.setRenderingHint(Drawable.IMAGE_RENDERER, new MyImageRendener());
 
 


Field Summary
protected  java.awt.image.BufferedImage img
           
 
Constructor Summary
ImageRenderer()
           
 
Method Summary
 boolean drawImage(java.awt.Graphics2D graphics, java.awt.geom.Rectangle2D anchor)
          Render picture data into the supplied graphics
 boolean drawImage(java.awt.Graphics2D graphics, java.awt.geom.Rectangle2D anchor, java.awt.Insets clip)
          Render picture data into the supplied graphics
 java.awt.Dimension getDimension()
           
 java.awt.image.BufferedImage getImage()
           
 void loadImage(byte[] data, java.lang.String contentType)
          Load and buffer the image
 void loadImage(java.io.InputStream data, java.lang.String contentType)
          Load and buffer the image
 void setAlpha(double alpha)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

img

protected java.awt.image.BufferedImage img
Constructor Detail

ImageRenderer

public ImageRenderer()
Method Detail

loadImage

public void loadImage(java.io.InputStream data,
                      java.lang.String contentType)
               throws java.io.IOException
Load and buffer the image

Parameters:
data - the raw image stream
contentType - the content type
Throws:
java.io.IOException

loadImage

public void loadImage(byte[] data,
                      java.lang.String contentType)
               throws java.io.IOException
Load and buffer the image

Parameters:
data - the raw image stream
contentType - the content type
Throws:
java.io.IOException

getImage

public java.awt.image.BufferedImage getImage()
Returns:
the buffered image

getDimension

public java.awt.Dimension getDimension()
Returns:
the dimension of the buffered image

setAlpha

public void setAlpha(double alpha)
Parameters:
alpha - the alpha [0..1] to be added to the image (possibly already containing an alpha channel)

drawImage

public boolean drawImage(java.awt.Graphics2D graphics,
                         java.awt.geom.Rectangle2D anchor)
Render picture data into the supplied graphics

Returns:
true if the picture data was successfully rendered

drawImage

public boolean drawImage(java.awt.Graphics2D graphics,
                         java.awt.geom.Rectangle2D anchor,
                         java.awt.Insets clip)
Render picture data into the supplied graphics

Returns:
true if the picture data was successfully rendered


Copyright 2015 The Apache Software Foundation or its licensors, as applicable.