Grüße an alle!
Ich wollte mich im Forum erkundigen, ob jemand Erfahrungen mit der Performance von svg grafiken in Java gemacht hat. Im Speziellen mit der svgSalamander library. Ich bevorzuge Salamander, da meine Applikation ein Applet ist, dass mit dem lib Umfang der Batik API schlichtweg zu groß wird.
Im speziellen geht es darum, die SVG Grafiken auf den Screen zu rendern. Einerseits für bewegende Objekte, die ihre Koordinaten 25x pro Sekunde ändern, als auch statischem Content, der nur sehr selten während der Laufzeit verändert wird.
In der Theorie würde ich annehmen, dass wenn die Objekte der SVG File in Shapeobjekte - Java2D vektor Grafik überführt werden, ich diese schneller zeichnen könnte, als BufferedImages. Gleichzeitig weiß ich aber auch nicht genau, wie Salamander das Rendern der SVG Objekte intern durchführt. Daher war auch mein Gedanke, die XML Tags selbst auszulesen und in Shape Objekte umzuwandeln, um dann bspw. zur Laufzeit nur die Koordinate im Renderprozess anzupassen.
Weiterhin bot sich die Verwendung von SVGIcon der Salamander Bibliothek als Swing Element an, dass (so vermute ich zZ leider nur) die Tags in einer Swing Komponente instanziert und ich quasi nicht die Tags in der SVG File für Anpassungen anfassen muss.
Hat jemand Erfahrungen gemacht, oder könnte meine Vermutungen stützen/verneinen?
Auch theoretische Diskussionen würden mich brennend interessieren. Letztlich geht es mir darum, ob es sich lohnen würde, statt png files auf svg files für mein Applet umzusteigen (Buttons, UI, Objektrendering).
Herzlichen Dank.
LG tuedel
I would like to ask, if anybody has experienced the performance of using svg files with batik/svgSalamander instead of common image file formats like png? On the one hand for dynamic objects, which need to become transformed 25 times per second and on the other hand with static images, which rarely change.
I was thinking about if its worth it performance wise, having Java2D shape objects, instanced out of svg input, instead of BufferedImages.
Thanks for your help!! Best regards.
Ich wollte mich im Forum erkundigen, ob jemand Erfahrungen mit der Performance von svg grafiken in Java gemacht hat. Im Speziellen mit der svgSalamander library. Ich bevorzuge Salamander, da meine Applikation ein Applet ist, dass mit dem lib Umfang der Batik API schlichtweg zu groß wird.
Im speziellen geht es darum, die SVG Grafiken auf den Screen zu rendern. Einerseits für bewegende Objekte, die ihre Koordinaten 25x pro Sekunde ändern, als auch statischem Content, der nur sehr selten während der Laufzeit verändert wird.
In der Theorie würde ich annehmen, dass wenn die Objekte der SVG File in Shapeobjekte - Java2D vektor Grafik überführt werden, ich diese schneller zeichnen könnte, als BufferedImages. Gleichzeitig weiß ich aber auch nicht genau, wie Salamander das Rendern der SVG Objekte intern durchführt. Daher war auch mein Gedanke, die XML Tags selbst auszulesen und in Shape Objekte umzuwandeln, um dann bspw. zur Laufzeit nur die Koordinate im Renderprozess anzupassen.
Weiterhin bot sich die Verwendung von SVGIcon der Salamander Bibliothek als Swing Element an, dass (so vermute ich zZ leider nur) die Tags in einer Swing Komponente instanziert und ich quasi nicht die Tags in der SVG File für Anpassungen anfassen muss.
Hat jemand Erfahrungen gemacht, oder könnte meine Vermutungen stützen/verneinen?
Auch theoretische Diskussionen würden mich brennend interessieren. Letztlich geht es mir darum, ob es sich lohnen würde, statt png files auf svg files für mein Applet umzusteigen (Buttons, UI, Objektrendering).
Herzlichen Dank.
LG tuedel
I would like to ask, if anybody has experienced the performance of using svg files with batik/svgSalamander instead of common image file formats like png? On the one hand for dynamic objects, which need to become transformed 25 times per second and on the other hand with static images, which rarely change.
I was thinking about if its worth it performance wise, having Java2D shape objects, instanced out of svg input, instead of BufferedImages.
Thanks for your help!! Best regards.