2017-02-17 5 views
0

Ich versuche eine SVG file in einer JSVGCanvas mit Batik anzuzeigen. In dieser SVG-Datei befindet sich ein Bild. Die Sache ist, dass das Bild nicht gezeigt wird. Stattdessen erhalte ich ein Fehlerbild. Dies ist mein Code:Bild anzeigen Batik JSVGCanvas

SVG-Datei

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
<image x="0" y="0" width="150" xlink:href="C:\Absolute\path\to\image" xlink:type="src" height="150" /> 
</svg> 

JAVA-Code

File file = new File("C:/absolute/Path/To/File"); 
    String url = null; 
    try { 
     url = file.toURL().toString(); 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } 
    System.out.println(url); 
    JSVGCanvas canvas = new JSVGCanvas(); 
    canvas.setEnableImageZoomInteractor(true); 
    canvas.setSize(500,500); 


canvas.setURI(url); 

    JFrame f = new JFrame("Batik Graphics"); 
    f.getContentPane().add(canvas); 
    f.pack(); 
    f.setVisible(true); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

HINWEIS Wenn die SVG-Datei mit dem Browser openned wird, wird das Bild korrekt dargestellt .

+0

Ich habe es auch versucht, aber es funktioniert nicht – IrApp

+0

OK, ich habe es. Ich schrieb file: /// Absolute/path/to/image (3 Schrägstriche statt 2) und es funktioniert. Vielen Dank für den Tipp! – IrApp

Antwort

1

C: \ Absolute \ Pfad \ zu \ Image ist kein gültiger href. Ich denke du willst stattdessen file: /// Absolute/path/to/image.