Hi Thierry,
          Thanks your advice. I tried dynamic renderer also. It has not
improved the memory usage much. More over peroformance is too worst. I am
sending the code which converts svg file to buffered image for desired size.
Please have a look at and suggest me to improve performance and memory. 

Thanks in advance
Bala    

// import all required classes

public class SVGToImage
{

    StaticRenderer renderer;
    UserAgent      userAgent;
    DocumentLoader loader;
    BridgeContext  ctx;
    BufferedImage image;
    BufferedImage display;
    File svgFile;
    Dimension size;

    SVGToImage(File svgFile, Dimension size)
    {
      this.svgFile = svgFile;
      if(size == null)
       size = Toolkit.getDefaultToolkit().getScreenSize();
      else
        this.size = size;
      //renderer = new StaticRenderer();
    renderer = new DynamicRenderer();
      userAgent = new UserAgentAdapter();
      loader    = new DocumentLoader(userAgent);
      ctx       = new BridgeContext(userAgent, loader);
      display = new BufferedImage(size.width, size.height,
                                    BufferedImage.TYPE_INT_BGR);
      buildImage();
    }

    public BufferedImage buildImage()
    {
        renderer.setDoubleBuffered(true);
        GraphicsNode   gvtRoot = null;
                GVTBuilder builder = new GVTBuilder();
                try
                {
                        //System.out.println("Reading: " + svgFile);
                Document svgDoc =
loader.loadDocument(svgFile.toURL().toString());
                //System.out.println("Building: " + svgFile);
                gvtRoot = builder.build(ctx, svgDoc);
                //System.out.println("Rendering: " + svgFile);
            renderer.setTree(gvtRoot);
            Element elt = ((SVGDocument)svgDoc).getRootElement();
                        //System.out.println("display" + display);
                        renderer.setTransform(ViewBox.getViewTransform
                            (null, elt, display.getWidth(),
display.getHeight()));
        
renderer.updateOffScreen(display.getWidth(),display.getHeight());
                        Rectangle r = new Rectangle(0,
0,display.getWidth(),display.getHeight());
                        renderer.repaint(r);
            image = renderer.getOffScreen();
            //System.out.println("Painting: " + image);
            //Graphics2D g2d = display.createGraphics();
                        //g2d.setColor(new Color(0,0,0));
                        //g2d.drawImage(image, null, 0, 0);
            return image;

      }catch(Exception e)
       {
                          e.printStackTrace();
                          return null;
                }

  }


   public static void main(String arg[])
   {

            try
            {
                           File f = new
File("C:\\GE-Enter\\SVG\\batik-1.1.1\\samples\\Tri.svg");
               new SVGToImage(f,null);
                    }catch(Exception e)
                     {
                                 e.printStackTrace();
                         }

   }

}


"THIS E-MAIL MESSAGE ALONG WITH ANY ATTACHMENTS IS INTENDED ONLY FOR THE
ADDRESSEE and may contain confidential and privileged information.
If the reader of this message is not the intended recipient,
you are notified that any dissemination, distribution or copy of this 
communication is strictly Prohibited. 
If you have received this message by error, please notify us 
immediately, return the original mail to the sender and delete the 
message from your system."


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to