Does anyone know how parse a svg file on a paintable canvas so I can redraw the graphics?
I am also very interested in this. Specifically we’re looking at a project to display a Cognex overlay (SVG file) on top of the FTP’d image.
Thats exactly what I’m trying to do. I’m currently using the web browser to display the svg but with the browser constantly refreshing when a new image comes in, I think it will be distracting to the operators.
I believe Ignition can take an SVG imported by just dragging it into the designer, is there any reason you can’t do this? If you need to move it around or something, you can probably use the system.gui.transform() to move the group it puts it in around, change size etc.
Given that the SVG (1.1) spec is a mind-numbing 826 pages (https://www.w3.org/TR/SVG11/REC-SVG11-20110816.pdf) it’s very unlikely that you would be able to reasonably implement something like this. Inside of the designer we use the Batik toolkit to create Java graphic primitives out of SVG files - but as many people run into, the edge-case support is lacking (many CAD programs can output into an SVG that will either not work in the designer, or else cause massive performance problems).
There’s no good solution to this problem - the SVG spec is massive, so writing a complete interpeter is just not practical. You’re welcome to try, but there are no pre-existing resources (unless you can modify Batik to your purposes, in which case good luck).
I wonder if it’s possible to use an external tool like Flamingo SVG Transcoder and write the Java2d to a file that can be read by Ignition and used on the paintable canvas. Any thoughts?
(I am going to release an eval version on gitHub pretty soon, but you can see the demo links on www.pramanj.com)
I found these 2 links interesting. What’s your opinion on this?
I like this.
DOM on Canvas - Why would one like to draw DOM on Canvas! DOM is natively supported in browsers in most efficient way. Its of academic interest. Canvas or SVG on DOM does make sense.
fabric - Again of not very practical value. Canvas v/s SVG is a topic of debate and depends on application. While SVG is convenient to program, it has more overheads. Canvas being at lower level , is more efficient but difficult to program.
There are lots of such web sites available demonstrating features of SVG and Canvas.