Bonjour,
je me retrouve face à un vrai probleme p-e un peu bete mais totalement
bloquant pour moi...
Je vais devoir realiser une application de creation, manipulation et
animation de dessin au format vectoriel. J'ai opté pour le svg (a
premiere vue c'est la seule solution de toute maniere ;) et donc je
vais utiliser l'api batik. Seulement voila, je ne sais pas du tout par
ou prendre le truc ! Dois-je apprendre d'abord jave2d puis batik ?
seulement batik ? mais comment batik fonctionne til ? Je suis biensur
allé plusieurs fois sur xml.apache.org/batik mais sans grand succés.
Je ne comprends pas comment faire pour debuter avec batik (et avec
java au passage :)
Si une ame charitable pouvait m'aider ... je serais preneur car je
galere un truc de ouf !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud Berger
Bonjour,
Un exemple avec (désolé), des tests commentés. La partie 2D se passe dans le paint La partie Batik est simplissime, puisqu'il suffit de créer un objet SVGGraphics2D que l'on envoie au paint à la place du Graphics2D habituel. Java2D n'est pas bien compliqué, et cet exemple doit va vous mettre rapidement le pied à l'étrier pour Batik :
public class SvgGen { public static void paint(Graphics2D g2d) { g2d.setPaint(Color.black); g2d.drawLine(0,5,10,15); g2d.setPaint(Color.white); g2d.fill(new Rectangle(0, 0, 200, 200)); g2d.setPaint(Color.red); g2d.fill(new Rectangle(10, 10, 100, 100)); g2d.rotate(25d); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3F)); g2d.setPaint(Color.green); g2d.fill(new Rectangle(35, 10, 12, 12)); g2d.drawString("Hellow wo'd", 25, 40); } public static void main(String [] args) throws IOException { // Get a DOMImplementation
DOMImplementation domImpl GenericDOMImplementation.getDOMImplementation(); // Create an instance of org.w3c.dom.Document
Document document = domImpl.createDocument(null, "svg", null); // Create an instance of the SVG Generator
SVGGraphics2D svgGenerator = new SVGGraphics2D(document); // Ask the test to render into the SVG Graphics2D implementation
SvgGen test = new SvgGen(); paint(svgGenerator); // Finally, stream out SVG to the standard output using UTF-8
// character to byte encoding
boolean useCSS = true; // we want to use CSS style attribute
Writer out = new OutputStreamWriter(System.out, "UTF-8"); svgGenerator.setSVGCanvasSize(new Dimension(200,200)); svgGenerator.stream(out, useCSS); // écrire le graphics en jpeg
/*BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); paint(g2); g2.dispose(); ImageIO.write(image, "png", new File("example.png"));*/
} /*
private AlphaComposite makeComposite(float alpha) { int type = AlphaComposite.SRC_OVER; return(AlphaComposite.getInstance(type, alpha)); }
Bonjour, je me retrouve face à un vrai probleme p-e un peu bete mais totalement bloquant pour moi... Je vais devoir realiser une application de creation, manipulation et animation de dessin au format vectoriel. J'ai opté pour le svg (a premiere vue c'est la seule solution de toute maniere ;) et donc je vais utiliser l'api batik. Seulement voila, je ne sais pas du tout par ou prendre le truc ! Dois-je apprendre d'abord jave2d puis batik ? seulement batik ? mais comment batik fonctionne til ? Je suis biensur allé plusieurs fois sur xml.apache.org/batik mais sans grand succés. Je ne comprends pas comment faire pour debuter avec batik (et avec java au passage :)
Si une ame charitable pouvait m'aider ... je serais preneur car je galere un truc de ouf !
Amicalement
Seb
Bonjour,
Un exemple avec (désolé), des tests commentés.
La partie 2D se passe dans le paint
La partie Batik est simplissime, puisqu'il suffit de créer un objet
SVGGraphics2D que l'on envoie au paint à la place du Graphics2D habituel.
Java2D n'est pas bien compliqué, et cet exemple doit va vous mettre
rapidement le pied à l'étrier pour Batik :
public class SvgGen {
public static void paint(Graphics2D g2d) {
g2d.setPaint(Color.black);
g2d.drawLine(0,5,10,15);
g2d.setPaint(Color.white);
g2d.fill(new Rectangle(0, 0, 200, 200));
g2d.setPaint(Color.red);
g2d.fill(new Rectangle(10, 10, 100, 100));
g2d.rotate(25d);
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3F));
g2d.setPaint(Color.green);
g2d.fill(new Rectangle(35, 10, 12, 12));
g2d.drawString("Hellow wo'd", 25, 40);
}
public static void main(String [] args) throws IOException {
// Get a DOMImplementation
DOMImplementation domImpl GenericDOMImplementation.getDOMImplementation();
// Create an instance of org.w3c.dom.Document
Document document = domImpl.createDocument(null, "svg", null);
// Create an instance of the SVG Generator
SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
// Ask the test to render into the SVG Graphics2D implementation
SvgGen test = new SvgGen();
paint(svgGenerator);
// Finally, stream out SVG to the standard output using UTF-8
// character to byte encoding
boolean useCSS = true; // we want to use CSS style attribute
Writer out = new OutputStreamWriter(System.out, "UTF-8");
svgGenerator.setSVGCanvasSize(new Dimension(200,200));
svgGenerator.stream(out, useCSS);
// écrire le graphics en jpeg
/*BufferedImage image = new BufferedImage(200, 200,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
paint(g2);
g2.dispose();
ImageIO.write(image, "png", new File("example.png"));*/
}
/*
private AlphaComposite makeComposite(float alpha) {
int type = AlphaComposite.SRC_OVER;
return(AlphaComposite.getInstance(type, alpha));
}
"Grillot S?bastien" <sebastiengrillot@gmail.com> a écrit dans le message
news: 82bf1a14.0505030552.7c8dac47@posting.google.com...
Bonjour,
je me retrouve face à un vrai probleme p-e un peu bete mais totalement
bloquant pour moi...
Je vais devoir realiser une application de creation, manipulation et
animation de dessin au format vectoriel. J'ai opté pour le svg (a
premiere vue c'est la seule solution de toute maniere ;) et donc je
vais utiliser l'api batik. Seulement voila, je ne sais pas du tout par
ou prendre le truc ! Dois-je apprendre d'abord jave2d puis batik ?
seulement batik ? mais comment batik fonctionne til ? Je suis biensur
allé plusieurs fois sur xml.apache.org/batik mais sans grand succés.
Je ne comprends pas comment faire pour debuter avec batik (et avec
java au passage :)
Si une ame charitable pouvait m'aider ... je serais preneur car je
galere un truc de ouf !
Un exemple avec (désolé), des tests commentés. La partie 2D se passe dans le paint La partie Batik est simplissime, puisqu'il suffit de créer un objet SVGGraphics2D que l'on envoie au paint à la place du Graphics2D habituel. Java2D n'est pas bien compliqué, et cet exemple doit va vous mettre rapidement le pied à l'étrier pour Batik :
public class SvgGen { public static void paint(Graphics2D g2d) { g2d.setPaint(Color.black); g2d.drawLine(0,5,10,15); g2d.setPaint(Color.white); g2d.fill(new Rectangle(0, 0, 200, 200)); g2d.setPaint(Color.red); g2d.fill(new Rectangle(10, 10, 100, 100)); g2d.rotate(25d); g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3F)); g2d.setPaint(Color.green); g2d.fill(new Rectangle(35, 10, 12, 12)); g2d.drawString("Hellow wo'd", 25, 40); } public static void main(String [] args) throws IOException { // Get a DOMImplementation
DOMImplementation domImpl GenericDOMImplementation.getDOMImplementation(); // Create an instance of org.w3c.dom.Document
Document document = domImpl.createDocument(null, "svg", null); // Create an instance of the SVG Generator
SVGGraphics2D svgGenerator = new SVGGraphics2D(document); // Ask the test to render into the SVG Graphics2D implementation
SvgGen test = new SvgGen(); paint(svgGenerator); // Finally, stream out SVG to the standard output using UTF-8
// character to byte encoding
boolean useCSS = true; // we want to use CSS style attribute
Writer out = new OutputStreamWriter(System.out, "UTF-8"); svgGenerator.setSVGCanvasSize(new Dimension(200,200)); svgGenerator.stream(out, useCSS); // écrire le graphics en jpeg
/*BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); paint(g2); g2.dispose(); ImageIO.write(image, "png", new File("example.png"));*/
} /*
private AlphaComposite makeComposite(float alpha) { int type = AlphaComposite.SRC_OVER; return(AlphaComposite.getInstance(type, alpha)); }
Bonjour, je me retrouve face à un vrai probleme p-e un peu bete mais totalement bloquant pour moi... Je vais devoir realiser une application de creation, manipulation et animation de dessin au format vectoriel. J'ai opté pour le svg (a premiere vue c'est la seule solution de toute maniere ;) et donc je vais utiliser l'api batik. Seulement voila, je ne sais pas du tout par ou prendre le truc ! Dois-je apprendre d'abord jave2d puis batik ? seulement batik ? mais comment batik fonctionne til ? Je suis biensur allé plusieurs fois sur xml.apache.org/batik mais sans grand succés. Je ne comprends pas comment faire pour debuter avec batik (et avec java au passage :)
Si une ame charitable pouvait m'aider ... je serais preneur car je galere un truc de ouf !