On Sep 14, 2006, at 19:17 , Pieter Jansen wrote:
The "JSVG" class in 'contrib' of the batik source distribution might
give you some ideas. Thomas created a very easy way to rasterize SVG
documents using their URL (in different frames, but that code should
be easy to adjust)
Pieter -
thanks. I followed the sources, and based on the renderers and
transcoders
managed to get things working. It may not be optimal, but works at
least for the prototype stage.
In case someone else needs a summary, or anyone has suggestions for
improvements, here's what I ended up with.
I'm doing no transformations, and assume the svg behaves nicely, fits
into my content area, etc.
UserAgent ua = new UserAgentAdapter();
BridgeContext bc = new BridgeContext( ua );
GVTBuilder builder = new GVTBuilder();
GraphicsNode gvtRoot = builder.build( bc, mySVGDocument );
ImageRenderer renderer =
m_rendFactory.createStaticImageRenderer();
renderer.updateOffScreen( m_width, m_height );
renderer.setTransform( new AffineTransform() );
renderer.setTree( gvtRoot );
renderer.setDoubleBuffered( false );
Shape area = new Rectangle( 0, 0, m_width, m_height );
renderer.repaint( area );
BufferedImage rend = renderer.getOffScreen();
myGraphics2D.drawRenderedImage( rend, null );
renderer.dispose();
I'm still a bit worried about performance - there's a possibility I
need to draw hundreds, if not thousands, of SVG DOM representations
into a large image. (There will be just one DOM, which I clone,
modify the clone with JXPath, render, repeat.) Haven't done any
timing yet, though, and won't worry about it until it's nice and loomy.
Thanks;
//ebu
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]