import
java.io.*;
import
org.apache.batik.transcoder.image.JPEGTranscoder;
import
org.apache.batik.transcoder.TranscoderInput;
import
org.apache.batik.transcoder.TranscoderOutput;
import
org.apache.batik.dom.svg.SVGDOMImplementation;
import
org.w3c.dom.Document;
import
org.w3c.dom.Element;
import
org.w3c.dom.DOMImplementation;
public
class DOMRasterizer
{
public
Document createDocument()
{
DOMImplementation
impl =
SVGDOMImplementation.getDOMImplementation();
String
svgNS =
SVGDOMImplementation.SVG_NAMESPACE_URI;
Document
document =
impl.createDocument(svgNS,
"svg",
null);
Element
root =
document.getDocumentElement();
root.setAttributeNS(null,
"width",
"450");
root.setAttributeNS(null,
"height",
"500");
Element
e;
e
= document.createElementNS(svgNS,
"rect");
e.setAttributeNS(null,
"x",
"10");
e.setAttributeNS(null,
"y",
"10");
e.setAttributeNS(null,
"width",
"200");
e.setAttributeNS(null,
"height",
"300");
e.setAttributeNS(null,
"style",
"fill:red;stroke:black;stroke-width:4");
root.appendChild(e);
e
= document.createElementNS(svgNS,
"circle");
e.setAttributeNS(null,
"cx",
"225");
e.setAttributeNS(null,
"cy",
"250");
e.setAttributeNS(null,
"r",
"100");
e.setAttributeNS(null,
"style",
"fill:green;fill-opacity:.5");
root.appendChild(e);
return
document;
}
public
void save(Document
document) throws
Exception {
JPEGTranscoder
t = new
JPEGTranscoder();
t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,new
Float(.8));
TranscoderInput
input = new
TranscoderInput(document);
OutputStream
ostream =
new
FileOutputStream("outDOM.jpg");
TranscoderOutput
output =
new TranscoderOutput(ostream);
t.transcode(input,
output);
ostream.flush();
ostream.close();
}
public
static void
main(String []
args) throws
Exception {
DOMRasterizer
rasterizer =
new DOMRasterizer();
Document
document =
rasterizer.createDocument();
rasterizer.save(document);
System.exit(0);
}
}
Vous
pouvez l'exécuter : java
DOMRasterizer
Vous
obtiendrez le fichier « outDOM.jpg »
