org.apache.poi.sl.draw
Interface ImageRenderer

All Known Implementing Classes:
BitmapImageRenderer

public interface ImageRenderer

Classes can implement this interfaces 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 implements 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());
 
 


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()
           
 java.awt.image.BufferedImage getImage(java.awt.Dimension dim)
           
 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)
           
 

Method Detail

loadImage

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

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

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

getDimension

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

setAlpha

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

getImage

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

getImage

java.awt.image.BufferedImage getImage(java.awt.Dimension dim)
Parameters:
dim - the dimension in pixels of the returned image
Returns:
the image as buffered image
Since:
POI 3.15-beta2

drawImage

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

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