Bonjour,
Je cherche à savoir comment récupérer, si c'est possible, le contenu d'un canvas SVG, afin de pouvoir en modifier certains éléments, tout en laissant le reste intact.
Auriez-vous des idées, svp?
Bonjour,
Je cherche à savoir comment récupérer, si c'est possible, le contenu d'un canvas SVG, afin de pouvoir en modifier certains éléments, tout en laissant le reste intact.
Auriez-vous des idées, svp?
merci de préciser de quel librairie vous parler, il n'existe pas dans l'api java de base de "canevas svg"
Que je sache, de toutes façons, il n'y a pas de bibliothèque (traduction de libraries) comportant des mots séparés par des espaces...
Il s'agit donc d'un Canvas dans lequel j'ajoute du SVG.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 class SvgCanvas extends Canvas implements SVGEventListener{ protected SVGImage svgImage; protected ScalableGraphics sg=ScalableGraphics.createInstance(); private static String img; public SvgCanvas(String img){ this.img=img; try{ this.svgImage=(SVGImage)SVGImage.createImage((InputStream)getClass().getResourceAsStream("/"+img+".svg"),null); } catch(Exception e){} } public void pointerReleased(int x,int y){ } public void sizeChanged(int width, int height){ } public void showNotify(){ } public void hideNotify(){ } public void keyPressed(int keyCode){ } public void keyReleased(int keyCode){ } public void pointerPressed(int x,int y){ System.out.println(img); } public void paint(Graphics g){ sg.setRenderingQuality(2); g.setColor(219,238,255); g.fillRect(0,0,getWidth(),getHeight()); sg.bindTarget(g); svgImage.setViewportWidth(getWidth()); svgImage.setViewportHeight(getHeight()); sg.render(0,0,svgImage); sg.releaseTarget(); } }
ce composant n'a pas de double buffer accessible (autrement dit pas de mémoire). Sa source de dessin est uniquement votre svg qui est manipulé dans la commande paint().
Si vous avez besoin de récupérer l'image du SVG pour, par exemple, la sauver, vous devrez dessiner sur le Graphics d'un BufferedImage.
Aïe, ça ne correspond pas à ce dont j'ai besoin...
Le but étant de faire un formulaire SVG (J2ME) et de pouvoir le modifier, en récupérer des données, etc.
Mais merci quand même.
J'le laisse en non-résolu un petit moment, au cas où quelqu'un aurait l'une ou l'autre suggestion alternative, sinon, ben, demain, je le passerai en résolu.
Petite précision, comme c'est pour un projet commercial, je ne veux pas passer par l'interface graphique SVG de Netbeans ou d'Eclipse, c'est pourquoi je cherche une façon-maison de le faire.![]()
Partager