Java-Générer un fichier SVG à partir d'un fichier PNG à l'aide de SVGGraphics2D
J'utilise actuellement SVGGraphics2D pour créer un fichier SVG. J'ai pu avoir un fichier SVG en sortie en y dessinant des formes, mais ce dont j'ai besoin, c'est d'avoir un bufferedimage - un fichier PNG, dessiné dans le document SVG. Voici les codes actuels avec lesquels je travaille.
Question: Quel devrait être le processus approprié pour dessiner une image tampon dans un document SVG?
Méthode pour dessiner l'image à partir de la source.
public void paintImage(Graphics g) throws IOException {
File imageSrc = new File("C:\\Users\\anthony\\Downloads\\SVGGraphics2D\\src\\svggraphics\\eg.png");
BufferedImage img = ImageIO.read(imageSrc);
Graphics2D g2d = (Graphics2D) img.getGraphics();
g2d.drawImage(img,0,0,null);
}
Crée un document SVG.
public static void main(String [] args) throws IOException {
DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
String svgNS = "http://www.w3.org/2000/svg";
Document document = domImpl.createDocument(svgNS, "svg", null);
SVGGraphics2D graphics = new SVGGraphics2D(document);
TestSVGGenerator test = new TestSVGGenerator();
test.paintImage(graphics);
boolean useCSS = true;
Writer out = new OutputStreamWriter(new FileOutputStream("test.svg"), "UTF-8");
graphics.stream(out, useCSS);
}
1 answers
Tout d'abord, vous ne spécifiez pas quelle bibliothèque fournit la classe SVGGraphics2D
. C'est une information importante que vous avez omise. Donc, ce qui suit est un peu une supposition.
Ensuite, vous passez une instance de SVGGraphics2D
à paintImage()
, mais ne l'utilisez pas. Je soupçonne que ce que vous auriez dû écrire est:
public void paintImage(Graphics g) throws IOException {
File imageSrc = new File("C:\\Users\\anthony\\Downloads\\SVGGraphics2D\\src\\svggraphics\\eg.png");
BufferedImage img = ImageIO.read(imageSrc);
g.drawImage(img,0,0,null);
}
Essayez ça.