public class ImageRenderer
extends java.lang.Object
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());
Modifier and Type | Field and Description |
---|---|
protected java.awt.image.BufferedImage |
img |
Constructor and Description |
---|
ImageRenderer() |
Modifier and Type | Method and Description |
---|---|
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) |
public void loadImage(java.io.InputStream data, java.lang.String contentType) throws java.io.IOException
data
- the raw image streamcontentType
- the content typejava.io.IOException
public void loadImage(byte[] data, java.lang.String contentType) throws java.io.IOException
data
- the raw image streamcontentType
- the content typejava.io.IOException
public java.awt.image.BufferedImage getImage()
public java.awt.Dimension getDimension()
public void setAlpha(double alpha)
alpha
- the alpha [0..1] to be added to the image (possibly already containing an alpha channel)public boolean drawImage(java.awt.Graphics2D graphics, java.awt.geom.Rectangle2D anchor)
public boolean drawImage(java.awt.Graphics2D graphics, java.awt.geom.Rectangle2D anchor, java.awt.Insets clip)
Copyright 2016 The Apache Software Foundation or its licensors, as applicable.