SVG

SVG - Java - Programmation

Marsh Posté le 30-07-2003 à 10:28:02    

Quelqu'un sait-il comment introduire le rendu d'un fichier .svg dans une application Java ? :cry:  :cry:

Reply

Marsh Posté le 30-07-2003 à 10:28:02   

Reply

Marsh Posté le 30-07-2003 à 10:32:59    

ouais :sol:
tu code ton propre renderer svg :sol:
 
ou sinon tu utilises des trucs tout fait genre tinyline mais je sais pas ou y en sont avec le stdart (et pas d'antialiasing) ou batik si tu arrives a y comprendre quelque chose

Reply

Marsh Posté le 30-07-2003 à 10:37:08    

C clair hier j'ai telecharger batik et franchement c'était vraiment la misere.
Faire son propre interpreteur svg ca rique d'etre tendu je pense.
Je vais essaye tinyline
Merci beaucoup :bounce:  :bounce:


Message édité par zizou39 le 30-07-2003 à 10:37:38
Reply

Marsh Posté le 30-07-2003 à 10:43:59    

boaf si t'as droit a java 2 tu devrais pouvoir implanter les trucs de base en 2tps 3mouvements, le plus chiant restant le parse du XML...
 
Apres evidemment si tu veux des anims et tout ca, ca va etre autre hcose :D

Reply

Marsh Posté le 30-07-2003 à 10:54:50    

[:blueflag]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-07-2003 à 11:07:12    

En fait dans mon appli java je dois afficher une carte de france et dessiner certain departement en une couleur selon des chiffres que je prends dans une base de donnée.
J'ai trouve une carte de france en .svg donc je voulais l'introduire a mon appli.
 
Si quelqu'un aurait une autre idée ca m'arrangerait
Peut que quelqu'un a creer le composant JCarteDeFrance
 
 :lol:  :lol:

Reply

Marsh Posté le 30-07-2003 à 14:07:30    

Quelqu'un voit comment résoudre mon probleme ?

Reply

Marsh Posté le 31-07-2003 à 12:04:57    

trouve une carte de France en jpeg :D

Reply

Marsh Posté le 06-08-2003 à 09:34:45    

J'ai essaye avec tinilyne. Je ne peux avec ca que visualiser les exemples qui sont fournis avec. Je ne peux pas visualiser la carte de france (.svg) que j'ai telecharger sur le net.
Es ce que tinyline ne connait pas tous les tags ?
Comment faire ?

Reply

Marsh Posté le 02-09-2003 à 14:24:19    

Avec Cocoon 2 (Batik inclu), les doigts dans le nez  :D  
Ca intéresse personnes ? Bon je sors  :sweat:

Reply

Marsh Posté le 02-09-2003 à 14:24:19   

Reply

Marsh Posté le 02-09-2003 à 15:39:03    

chocoboy a écrit :

Avec Cocoon 2 (Batik inclu), les doigts dans le nez  :D  
Ca intéresse personnes ? Bon je sors  :sweat:  

ben si, si tu expliques ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 02-09-2003 à 19:40:00    

C'est donc pour répondre à ta problématique

Code :
  1. En fait dans mon appli java je dois afficher une carte de france et dessiner certain departement en une couleur selon des chiffres que je prends dans une base de donnée.
  2. J'ai trouve une carte de france en .svg donc je voulais l'introduire a mon appli.
  3. Si quelqu'un aurait une autre idée ca m'arrangerait
  4. Peut que quelqu'un a creer le composant JCarteDeFrance


 
Encore faut il que tu puisse installer Cocoon 2. Mais de toute façon ca te permettra de comprendre également le fonctionnement de Batik.
 
Dans Cocoon 2, il faut :
 
Faire un XSL définissant l'aspect de ta carte, avec les paramètres en entrée...
Ci dessous un exemple (incomplet) tout simple qui m'a servi à générer des cartes de visite en ligne par exemple, plaquette.xsl :
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet
  3. version="1.0"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5. xmlns:xlink="http://www.w3.org/1999/xlink"
  6. xmlns="http://www.w3.org/2000/svg"
  7. xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/">
  8. <xsl:param name="url_img" />
  9. <xsl:param name="identity" />
  10. <xsl:param name="country" />
  11. <xsl:template match="root">
  12. <svg xmlns="http://www.w3.org/2000/svg"
  13.      xmlns:xlink="http://www.w3.org/1999/xlink"
  14.      preserveAspectRatio="none" mime-type="svg+xml"
  15.    text-rendering="optimizeLegibility"
  16.    width="454" height="374" viewBox="0 0 340 284">
  17.  <defs>
  18.     <g id="object">
  19.       <rect x="0" y="0" width="340" height="142"
  20.         style="fill:rgb(255,255,255);stroke:rgb(0,0,0);stroke-width:1"/>
  21.       <image x="0" y="0" width="340" height="31">
  22.       <xsl:attribute name="xlink:href"><xsl:value-of select="$url_img" />img_01.jpg</xsl:attribute>
  23.      </image>
  24.       <image x="0" y="107" width="340" height="36">
  25.       <xsl:attribute name="xlink:href"><xsl:value-of select="$url_img" />img_02.jpg</xsl:attribute>
  26.      </image>
  27.       <image x="10" y="40" width="25" height="25">
  28.       <xsl:attribute name="xlink:href"><xsl:value-of select="$url_img" />img_03.jpg</xsl:attribute>
  29.      </image>
  30.       <image x="10" y="80" width="25" height="25">
  31.       <xsl:attribute name="xlink:href"><xsl:value-of select="$url_img" />img_04.jpg</xsl:attribute>
  32.      </image>
  33.       <rect x="0" y="0" width="340" height="142"
  34.         style="fill:none;stroke:rgb(0,0,0);stroke-width:1"/>
  35.       <text x="40" y="60" style="fill:rgb(0,0,0);font-size:24;font-family:Arial"><xsl:value-of select="$identity" /></text>
  36.       <text x="40" y="100" style="fill:rgb(0,0,0);font-size:24;font-family:Arial"><xsl:value-of select="$country" /></text>
  37.      </g>
  38.  </defs>
  39.  <g transform="translate(0 142)">
  40.   <use xlink:href="#object" />
  41.  </g>
  42.  <g transform="matrix(-1 3.67382e-016 -3.67382e-016 -1 340 142.5)">
  43.   <use xlink:href="#object" />
  44.  </g>
  45. </svg>
  46. </xsl:template>
  47. </xsl:stylesheet>


 
Dans Cocoon 2, pour approvisionner le XSL avec des données, soit, on crée un fichier XML les contenant, soit on crée un fichier XSP effectuer une requete sur base de donnée, par exemple, plaquette_data.xsp :
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsp:page language="java"
  3.     xmlns:xsp="http://apache.org/xsp"
  4.     xmlns:xsp-request="http://apache.org/xsp/request/2.0"
  5.     xmlns:esql="http://apache.org/cocoon/SQL/v2">
  6. <!--retrieve all the request parameters-->
  7. <users>
  8. <esql:connection>
  9.  <esql:pool>mysql</esql:pool>
  10.    <esql:execute-query>
  11.   <!--selecting the entity-->
  12.     <esql:query>
  13.      select identity, country from users where id_user=<xsp-request:get-parameter name="id_user"/>
  14.     </esql:query>
  15.     <esql:results>
  16.      <esql:row-results>
  17.      <user>
  18.                               <identity>
  19.                                   <esql:get-string column="identity" />
  20.                               </identity>
  21.                               <country>
  22.                                   <esql:get-string column="country" />
  23.                               </country>
  24.                            </user>
  25.             </esql:row-results>
  26.            </esql:results>
  27.           </esql:execute-query>
  28.    </esql:row-results>
  29.     </esql:results>
  30.    </esql:execute-query>
  31. </esql:connection>
  32. </users>
  33. </xsp:page>


 
Ensuite, on définit l'enchainement des pipes et le passage des paramètres dans le sitemap.xmap :
 

Code :
  1. <map:match pattern="plaquette_data">
  2.     <map:generate type="xsp" src="xsp/plaquette_data.xsp" />
  3.     <map:transform src="xsl/plaquette.xsl" />
  4.     <map:serialize type="xml" />
  5. </map:match>
  6. <map:match pattern="plaquette.svg">
  7.     <map:generate src="cocoon:/plaquette_data" />
  8.     <map:transform src="xsl/plaquette.xsl">
  9.          <map:parameter name="use-request-parameters" value="true" />
  10.     </map:transform>
  11.     <map:serialize type="svgxml" />
  12. </map:match>
  13. <map:match pattern="plaquette.jpg">
  14.     <map:generate src="cocoon:/plaquette_data" />
  15.     <map:transform src="xsl/plaquette.xsl">
  16.          <map:parameter name="use-request-parameters" value="true" />
  17.     </map:transform>
  18.     <map:serialize type="svg2jpeg" />
  19. </map:match>


 
Voila, cet exemple est à peine incomplet (ca fait un bail que j'ai plus fait de Cocoon 2), mais, il te permet en tapant dans ton browser :
 
plaquette.svg?id_user=1
--> de créer la plaquette avec l'identité de l'utilisateur 1, en SVG
 
plaquette.jpg?id_user=1
--> de créer la plaquette en JPEG
 
y a aussi de serializer pour le PNG
en plus, en SVG, tu peux également générer la partie javascript sous Cocoon 2 ce qui est très pratique.
Si jamais, tu essaie, fais moi savoir, je te donnerai des exemples plus complexes, avec drag & drop, effets de transparence et le toutim... [:chocoboy]


Message édité par chocoboy le 02-09-2003 à 19:42:04
Reply

Marsh Posté le 02-09-2003 à 19:41:35    

je lirai ça un jour :jap:
(ct pas *mon* probleme ;))


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed