You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by florian <fl...@structbench.com> on 2002/03/18 11:27:20 UTC

how scalable is batik?

hi!

i was wondering how scalable batik is.. is it possible to rasterize
pngs which are 2800 x 2800 pixel big, and about 3000 of them
per day?

basicly im wondering if hardware is the limit for java and batik,
and i can render as big and as much pictures as much memory and
cpu power i have, or if java or batik itself has some limitations,
even when i have the best hardware available on the market? ; )

thanks alot!

ciao!
florian



-- 



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


RE: SVG draw...

Posted by Thierry Kormann <tk...@ilog.fr>.
> I'm new with batik so i want to ask u what is/are the classes
> that just draw
> an SVG document? In other words i want to know wich classes
> validates an SVG
> doc and tells to Java2D what has to print?
> I want to know this because i have to add aditional features (like the
> possibility to not show some group) to all SVG docs that have tags like:

I am not sure what you want to do. May be, the informations bellow will
help.

The Bridge module takes a DOM and create a GVT tree. A GVT tree is then
rendered via a Renderer and that produces an Image.

If you want to control things that are built, you can easily subclass the
bridges you are interested in, put your new bridges implementation to the
BridgeContext and ask the GVTBuilder to build the GVTTree after that.



Thierry.



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


SVG draw...

Posted by Nuno Faria <na...@alfarrabio.di.uminho.pt>.
Hi! Greetings from Portugal...

I'm new with batik so i want to ask u what is/are the classes that just draw
an SVG document? In other words i want to know wich classes validates an SVG
doc and tells to Java2D what has to print?
I want to know this because i have to add aditional features (like the
possibility to not show some group) to all SVG docs that have tags like:
<g id="id1">
  ...
</g>
<g id="id2">
...
</g>

Thanks in advance...





---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Re: Getting hold of Document used in SVGGeneratorContext and

Posted by ph...@intermedium.com.
Many thanks to Vincent and Stephane for the prompt response to my problem.
It worked like a charm, giving me the links I wanted, and made my code 
cleaner.

To Vincent, your answer has assured that I will not be a hairless man in 
the forseeable future, thanks again.

To Stephane, I am sorely aware that I am assigning a rect to the circle
variable and am slightly embarrased that I forgot to remove that code 
before sending it off to the group.

Yours Sincerely
Phillip Larsen



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Re: Getting hold of Document used in SVGGeneratorContext and SVGGraphics2D

Posted by Vincent Hardy <vi...@sun.com>.
Phillip,

In the code I sent, please set useCSS to false to get it to work. 
I accidently left it set to true.
V.

Vincent Hardy wrote:
> 
> Phillip,
> 
> I have attached a modified version of your code that does not use
> a DocumentFragment and does not use CSS styling. It should do what you
> want.
> 
> Your example actually showed two issues in our DOM implementations and
> we are going to fix them shortly. It seems that replacing an element
> with a DocumentFragment gets us in an infinite loop and that we got
> a regression on removeAttribute (used when you do SVG streaming with
> useCss=true).
> 
> Thanks,
> Vincent.
> 
> Phillip Larsen wrote:
> >
> > Hi, I am creating a web charting application using Batik.
> >
> > I create a Document by first creating a DOMImplementation and
> > then using this DOMImplementation to create the Document.
> >
> > The Document is used to create a SVGGeneratorContext object and then
> > the SVGGeneratorContext is used to create the SVGGraphics2D object.
> >
> > I then use this SVGGraphics2D object as the graphical context in the
> > charting component. I am assuming that the Document I created is used
> > to hold the DOM tree created when performing Java2D commands with the
> > SVGGraphics2D object as graphical context.
> >
> > The charting component contains Java2D commands to create a simple line
> > chart where the lines for each series of data are connected with circles,
> > i.e. each value in the line chart is marked by a circle.
> >
> > I want to be able to perform drill down on this chart by clicking on the
> > circles to retrieve more information. Thus I need to be able to make the
> > circles in the chart clickable. To do so I think I need to go through
> > the DOM tree for the chart and replace each circle element with an X-link
> > element where the cirle is a child element of the X-link element.
> >
> > Here is the code I am using to perform what I have described above :
> >
> > public static void writeChartAsSVG(OutputStream out, JFreeChart chart, int width, int height) throws
> > IOException
> >     {
> >         SVGGeneratorContext ctx;
> >         SVGGraphics2D       svgGenerator;
> >         XmlWriter           xmlwriter;
> >         DOMImplementation   domImpl;
> >         Document            document;
> >         DocumentFragment    docFrag;
> >         NodeList            circleNodes;
> >         Node                dummyNode;
> >         Node                parentNode;
> >         Element             linkElement;
> >         Element             root;
> >         Element             circle;
> >         int                 numCircleNodes;
> >
> >         // Get a DOMImplementation
> >       domImpl = GenericDOMImplementation.getDOMImplementation();
> >
> >         // Create an instance of org.w3c.dom.Document
> >       document = domImpl.createDocument(null, "svg", null);
> >
> >         ctx = SVGGeneratorContext.createDefault(document);
> >         svgGenerator = new SVGGraphics2D(ctx,false);
> >
> >         chart.draw(svgGenerator, new Rectangle2D.Double(0, 0, width, height));
> >
> >         docFrag     = document.createDocumentFragment();
> >         linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
> >       linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
> >
> >         root = svgGenerator.getRoot();
> >
> >         circle = document.createElementNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_RECT_TAG);
> >         circle.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_FILL_ATTRIBUTE,"red");
> >         root.appendChild(circle);
> >
> >         circleNodes = root.getElementsByTagName(SVGSyntax.SVG_CIRCLE_TAG);
> >         numCircleNodes = circleNodes.getLength();
> >       for(int nodeCounter=0;nodeCounter<numCircleNodes;nodeCounter++)
> >       {
> >        dummyNode = circleNodes.item(nodeCounter).cloneNode(true);
> >        linkElement.appendChild(dummyNode);
> >
> >        parentNode = circleNodes.item(nodeCounter).getParentNode();
> >        parentNode.replaceChild(docFrag,circleNodes.item(nodeCounter));
> >
> >        docFrag = document.createDocumentFragment();
> >          linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
> >        linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
> >       }
> >
> >         // Finally, stream out SVG to the standard output using UTF-8
> >         // character to byte encoding
> >         boolean useCSS = true;
> >         Writer svgOutputWriter = new OutputStreamWriter(out, "UTF-8");
> >         svgGenerator.stream(root,svgOutputWriter,useCSS);
> >     }
> >
> > When I try to stream out using the svgGenerator.stream method
> > all I receive is the SVG document without any changes made.
> > It seems as though I am not able to access the DOM tree and
> > performs the replacements. Help on how to access the DOM tree created
> > by the SVGGenerator and manipulate the nodes of the tree
> > before streaming them to the output would be greatly appreciated.
> >
> > Regards
> > Phillip Larsen
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> > For additional commands, e-mail: batik-users-help@xml.apache.org
> 
>   ------------------------------------------------------------------------
> /*****************************************************************************
>  * Copyright (C) The Apache Software Foundation. All rights reserved.        *
>  * ------------------------------------------------------------------------- *
>  * This software is published under the terms of the Apache Software License *
>  * version 1.1, a copy of which has been included with this distribution in  *
>  * the LICENSE file.                                                         *
>  *****************************************************************************/
> 
> package org.apache.batik.svggen;
> 
> import java.awt.*;
> import java.awt.geom.*;
> 
> import java.io.*;
> 
> import org.apache.batik.util.SVGConstants;
> 
> import org.apache.batik.svggen.*;
> import org.apache.batik.dom.*;
> import org.apache.batik.dom.svg.*;
> import org.w3c.dom.*;
> 
> public class DOMManipulation {
>     public static class CirclePainter implements Painter {
>         public void paint(Graphics2D g){
>             g.translate(30,30);
>             g.setPaint(Color.blue);
>             g.draw(new Ellipse2D.Float(0,0,60,60));
>             g.setPaint(Color.red);
>             g.fill(new Ellipse2D.Float(100,100,60,60));
>         }
>     }
> 
>     static Painter painter = new CirclePainter();
> 
>     public static void writeAsSVG() throws
>         IOException {
>         SVGGeneratorContext ctx;
>         SVGGraphics2D       svgGenerator;
>         XmlWriter           xmlwriter;
>         DOMImplementation   domImpl;
>         Document            document;
>         DocumentFragment    docFrag;
>         NodeList            circleNodes;
>         Node                dummyNode;
>         Node                parentNode;
>         Element             linkElement;
>         Element             root;
>         Element             circle;
>         int                 numCircleNodes;
> 
>         // Get a DOMImplementation
>         domImpl = SVGDOMImplementation.getDOMImplementation();
> 
>         // Create an instance of org.w3c.dom.Document
>         document = domImpl.createDocument(null, "svg", null);
> 
>         ctx = SVGGeneratorContext.createDefault(document);
>         svgGenerator = new SVGGraphics2D(ctx,false);
>         svgGenerator.setSVGCanvasSize(new Dimension(400,400));
> 
>         painter.paint(svgGenerator);
> 
>         // docFrag     = document.createDocumentFragment();
>         linkElement = document.createElement(SVGSyntax.SVG_A_TAG);
>         linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
> 
>         root = svgGenerator.getRoot();
> 
>         circle = document.createElementNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_RECT_TAG);
>         circle.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_FILL_ATTRIBUTE,"red");
>         root.appendChild(circle);
> 
> 
>         circleNodes = root.getElementsByTagName(SVGSyntax.SVG_CIRCLE_TAG);
>         numCircleNodes = circleNodes.getLength();
>         for(int nodeCounter=0;nodeCounter<numCircleNodes;nodeCounter++) {
>             dummyNode = circleNodes.item(nodeCounter).cloneNode(true);
>             linkElement.appendChild(dummyNode);
> 
>             parentNode = circleNodes.item(nodeCounter).getParentNode();
>             parentNode.replaceChild(linkElement,circleNodes.item(nodeCounter));
> 
>             docFrag = document.createDocumentFragment();
>             linkElement = document.createElement(SVGSyntax.SVG_A_TAG);
>             linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
>         }
> 
>         // Finally, stream out SVG to the standard output using UTF-8
>         // character to byte encoding
>         boolean useCSS = true;
>         Writer svgOutputWriter = new OutputStreamWriter(System.out, "UTF-8");
>         svgGenerator.stream(root,svgOutputWriter,useCSS);
>         svgOutputWriter.flush();
>     }
> 
>     public static void main(String args[]) throws Exception {
>         writeAsSVG();
>         System.exit(0);
>     }
> }
> 
>   ------------------------------------------------------------------------
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Re: Getting hold of Document used in SVGGeneratorContext and SVGGraphics2D

Posted by Vincent Hardy <vi...@sun.com>.
Phillip,

I have attached a modified version of your code that does not use
a DocumentFragment and does not use CSS styling. It should do what you
want.

Your example actually showed two issues in our DOM implementations and
we are going to fix them shortly. It seems that replacing an element
with a DocumentFragment gets us in an infinite loop and that we got
a regression on removeAttribute (used when you do SVG streaming with
useCss=true).

Thanks,
Vincent.

Phillip Larsen wrote:
> 
> Hi, I am creating a web charting application using Batik.
> 
> I create a Document by first creating a DOMImplementation and
> then using this DOMImplementation to create the Document.
> 
> The Document is used to create a SVGGeneratorContext object and then
> the SVGGeneratorContext is used to create the SVGGraphics2D object.
> 
> I then use this SVGGraphics2D object as the graphical context in the
> charting component. I am assuming that the Document I created is used
> to hold the DOM tree created when performing Java2D commands with the
> SVGGraphics2D object as graphical context.
> 
> The charting component contains Java2D commands to create a simple line
> chart where the lines for each series of data are connected with circles,
> i.e. each value in the line chart is marked by a circle.
> 
> I want to be able to perform drill down on this chart by clicking on the
> circles to retrieve more information. Thus I need to be able to make the
> circles in the chart clickable. To do so I think I need to go through
> the DOM tree for the chart and replace each circle element with an X-link
> element where the cirle is a child element of the X-link element.
> 
> Here is the code I am using to perform what I have described above :
> 
> public static void writeChartAsSVG(OutputStream out, JFreeChart chart, int width, int height) throws
> IOException
>     {
>         SVGGeneratorContext ctx;
>         SVGGraphics2D       svgGenerator;
>         XmlWriter           xmlwriter;
>         DOMImplementation   domImpl;
>         Document            document;
>         DocumentFragment    docFrag;
>         NodeList            circleNodes;
>         Node                dummyNode;
>         Node                parentNode;
>         Element             linkElement;
>         Element             root;
>         Element             circle;
>         int                 numCircleNodes;
> 
>         // Get a DOMImplementation
>       domImpl = GenericDOMImplementation.getDOMImplementation();
> 
>         // Create an instance of org.w3c.dom.Document
>       document = domImpl.createDocument(null, "svg", null);
> 
>         ctx = SVGGeneratorContext.createDefault(document);
>         svgGenerator = new SVGGraphics2D(ctx,false);
> 
>         chart.draw(svgGenerator, new Rectangle2D.Double(0, 0, width, height));
> 
>         docFrag     = document.createDocumentFragment();
>         linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
>       linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
> 
>         root = svgGenerator.getRoot();
> 
>         circle = document.createElementNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_RECT_TAG);
>         circle.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_FILL_ATTRIBUTE,"red");
>         root.appendChild(circle);
> 
>         circleNodes = root.getElementsByTagName(SVGSyntax.SVG_CIRCLE_TAG);
>         numCircleNodes = circleNodes.getLength();
>       for(int nodeCounter=0;nodeCounter<numCircleNodes;nodeCounter++)
>       {
>        dummyNode = circleNodes.item(nodeCounter).cloneNode(true);
>        linkElement.appendChild(dummyNode);
> 
>        parentNode = circleNodes.item(nodeCounter).getParentNode();
>        parentNode.replaceChild(docFrag,circleNodes.item(nodeCounter));
> 
>        docFrag = document.createDocumentFragment();
>          linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
>        linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
>       }
> 
>         // Finally, stream out SVG to the standard output using UTF-8
>         // character to byte encoding
>         boolean useCSS = true;
>         Writer svgOutputWriter = new OutputStreamWriter(out, "UTF-8");
>         svgGenerator.stream(root,svgOutputWriter,useCSS);
>     }
> 
> When I try to stream out using the svgGenerator.stream method
> all I receive is the SVG document without any changes made.
> It seems as though I am not able to access the DOM tree and
> performs the replacements. Help on how to access the DOM tree created
> by the SVGGenerator and manipulate the nodes of the tree
> before streaming them to the output would be greatly appreciated.
> 
> Regards
> Phillip Larsen
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org

RE: Getting hold of Document used in SVGGeneratorContext and SVGGraphics2D

Posted by Stephane Hillion <sh...@ilog.fr>.
> From: Phillip Larsen [mailto:phillip.larsen@intermedium.no]
> Sent: Tuesday, March 19, 2002 2:09 PM
> To: 'Batik Users'
> Subject: Getting hold of Document used in SVGGeneratorContext and
> SVGGraphics2D
>
>
> Hi, I am creating a web charting application using Batik.
>
> I create a Document by first creating a DOMImplementation and
> then using this DOMImplementation to create the Document.
>
> The Document is used to create a SVGGeneratorContext object and then
> the SVGGeneratorContext is used to create the SVGGraphics2D object.
>
> I then use this SVGGraphics2D object as the graphical context in the
> charting component. I am assuming that the Document I created is used
> to hold the DOM tree created when performing Java2D commands with the
> SVGGraphics2D object as graphical context.
>
> The charting component contains Java2D commands to create a simple line
> chart where the lines for each series of data are connected with circles,
> i.e. each value in the line chart is marked by a circle.
>
> I want to be able to perform drill down on this chart by clicking on the
> circles to retrieve more information. Thus I need to be able to make the
> circles in the chart clickable. To do so I think I need to go through
> the DOM tree for the chart and replace each circle element with an X-link
> element where the cirle is a child element of the X-link element.
>
> Here is the code I am using to perform what I have described above :
> [...]

I am investigating on possible bugs in Batik but I already have some hints
to enhance your code:
 - the namespaces are not correctly set on your elements:
    '<a>' should be in the SVG namespace,
    'xlink:href' should be in the Xlink namespace,
    'fill' should be in the null namespace (because SVG attributes are not
in the SVG namespace),
 - the element assigned to the 'circle' variable is a 'rect' element !! (it
can explain why nothing happen...),
 - it is very dangerous to use the list returned by
getElementByTagName[NS]() when you modify the DOM tree because these lists
are live: it means that when a <circle> is added to the DOM, the list is
updated and the circle element is added to the list, at a position depending
on its position in the DOM tree.
--
  Stephane.


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Getting hold of Document used in SVGGeneratorContext and SVGGraphics2D

Posted by Phillip Larsen <ph...@intermedium.no>.
Hi, I am creating a web charting application using Batik.

I create a Document by first creating a DOMImplementation and
then using this DOMImplementation to create the Document.

The Document is used to create a SVGGeneratorContext object and then
the SVGGeneratorContext is used to create the SVGGraphics2D object.

I then use this SVGGraphics2D object as the graphical context in the
charting component. I am assuming that the Document I created is used
to hold the DOM tree created when performing Java2D commands with the
SVGGraphics2D object as graphical context.

The charting component contains Java2D commands to create a simple line
chart where the lines for each series of data are connected with circles,
i.e. each value in the line chart is marked by a circle.

I want to be able to perform drill down on this chart by clicking on the
circles to retrieve more information. Thus I need to be able to make the
circles in the chart clickable. To do so I think I need to go through
the DOM tree for the chart and replace each circle element with an X-link
element where the cirle is a child element of the X-link element.

Here is the code I am using to perform what I have described above :


public static void writeChartAsSVG(OutputStream out, JFreeChart chart, int width, int height) throws
IOException
    {
    	SVGGeneratorContext ctx;
	SVGGraphics2D       svgGenerator;
	XmlWriter           xmlwriter;
	DOMImplementation   domImpl;
	Document            document;
	DocumentFragment    docFrag;
	NodeList            circleNodes;
	Node                dummyNode;
	Node                parentNode;
	Element             linkElement;
	Element             root;
	Element             circle;
	int                 numCircleNodes;

	// Get a DOMImplementation
      domImpl = GenericDOMImplementation.getDOMImplementation();

	// Create an instance of org.w3c.dom.Document
      document = domImpl.createDocument(null, "svg", null);

	ctx = SVGGeneratorContext.createDefault(document);
	svgGenerator = new SVGGraphics2D(ctx,false);

	chart.draw(svgGenerator, new Rectangle2D.Double(0, 0, width, height));

	docFrag     = document.createDocumentFragment();
	linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
      linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");

	root = svgGenerator.getRoot();

	circle = document.createElementNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_RECT_TAG);
	circle.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.SVG_FILL_ATTRIBUTE,"red");
	root.appendChild(circle);


	circleNodes = root.getElementsByTagName(SVGSyntax.SVG_CIRCLE_TAG);
	numCircleNodes = circleNodes.getLength();
      for(int nodeCounter=0;nodeCounter<numCircleNodes;nodeCounter++)
      {
       dummyNode = circleNodes.item(nodeCounter).cloneNode(true);
       linkElement.appendChild(dummyNode);

       parentNode = circleNodes.item(nodeCounter).getParentNode();
       parentNode.replaceChild(docFrag,circleNodes.item(nodeCounter));

       docFrag = document.createDocumentFragment();
	 linkElement = (Element) docFrag.appendChild(document.createElement(SVGSyntax.SVG_A_TAG));
       linkElement.setAttributeNS(SVGSyntax.SVG_NAMESPACE_URI,SVGSyntax.ATTR_XLINK_HREF,"http://www.vg.no");
      }

	// Finally, stream out SVG to the standard output using UTF-8
	// character to byte encoding
	boolean useCSS = true;
	Writer svgOutputWriter = new OutputStreamWriter(out, "UTF-8");
	svgGenerator.stream(root,svgOutputWriter,useCSS);
    }


When I try to stream out using the svgGenerator.stream method
all I receive is the SVG document without any changes made.
It seems as though I am not able to access the DOM tree and
performs the replacements. Help on how to access the DOM tree created
by the SVGGenerator and manipulate the nodes of the tree
before streaming them to the output would be greatly appreciated.


Regards
Phillip Larsen


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


RE: how scalable is batik?

Posted by Thomas E Deweese <th...@kodak.com>.
>>>>> "T" == Tangent  <ta...@usa.net> writes:

T> Batik can render 2800 by 2800 fine if you give the computer ample
T> of RAM.  I would go for 768MB or 1GB.  You don't have to use dual
T> CPU because Java doesn't seem to utilize them well, in fact, in
T> most cases I see a decrease of performance.  If I were you, I would
T> go for some pizzabox-like thin servers from Dell (they are just
T> about $400 for 128MB RAM and 1.1Ghz Celeron) If you only run Batik
T> on it, I would install Linux so the OS will leave lots of room for
T> Java and Batik.

   Actually Batik can render 2800x2800 in a lot less memory but you
will have to go below the ImageTranscoder (or rewrite the
ImageTranscoder to not use a BufferedImage).  You will also need to
pick a format that streams, currently the only codec we include that
can stream (although it may not in some cases) is the Tiff codec.  The
PNG codec (due to a desire to support interlaced PNG) does not even
though PNG is capable of streaming.

T> Hope this helps.

>> -----Original Message----- From: florian
>> [mailto:florian@structbench.com] Sent: Monday, March 18, 2002 4:27
>> AM To: batik-users@xml.apache.org Subject: how scalable is batik?
>> 
>> 
>> 
>> hi!
>> 
>> i was wondering how scalable batik is.. is it possible to rasterize
>> pngs which are 2800 x 2800 pixel big, and about 3000 of them per
>> day?
>> 
>> basicly im wondering if hardware is the limit for java and batik,
>> and i can render as big and as much pictures as much memory and cpu
>> power i have, or if java or batik itself has some limitations, even
>> when i have the best hardware available on the market? ; )
>> 
>> thanks alot!
>> 
>> ciao!  florian
>> 
>> 
>> 
>> -- 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org For
>> additional commands, e-mail: batik-users-help@xml.apache.org
>> 
>> 


T> ---------------------------------------------------------------------
T> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org For
T> additional commands, e-mail: batik-users-help@xml.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


RE: how scalable is batik?

Posted by Tangent <ta...@usa.net>.
Florian,

Batik can render 2800 by 2800 fine if you give the computer ample of
RAM.  I would go for 768MB or 1GB.  You don't have to use dual CPU
because Java doesn't seem to utilize them well, in fact, in most cases I
see a decrease of performance.  If I were you, I would go for some
pizzabox-like thin servers from Dell (they are just about $400 for 128MB
RAM and 1.1Ghz Celeron)  If you only run Batik on it, I would install
Linux so the OS will leave lots of room for Java and Batik.

Hope this helps.

- Tangent

> -----Original Message-----
> From: florian [mailto:florian@structbench.com] 
> Sent: Monday, March 18, 2002 4:27 AM
> To: batik-users@xml.apache.org
> Subject: how scalable is batik?
> 
> 
> 
> hi!
> 
> i was wondering how scalable batik is.. is it possible to 
> rasterize pngs which are 2800 x 2800 pixel big, and about 
> 3000 of them per day?
> 
> basicly im wondering if hardware is the limit for java and 
> batik, and i can render as big and as much pictures as much 
> memory and cpu power i have, or if java or batik itself has 
> some limitations, even when i have the best hardware 
> available on the market? ; )
> 
> thanks alot!
> 
> ciao!
> florian
> 
> 
> 
> -- 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org