2017-02-17 24 views
0

Я пытаюсь отобразить SVG file в JSVGCanvas с использованием Batik. В этом SVG-файле есть изображение. Дело в том, что изображение не отображается. Вместо этого я получаю изображение с ошибкой. Это мой код:Показать изображение Batik JSVGCanvas

SVG файл

<!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 код

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); 

ПРИМЕЧАНИЕ Если файл SVG будет openned с браузером, изображение отображается правильно ,

+0

Я также пробовал это, но он тоже не работает – IrApp

+0

Хорошо, я понял. Я написал файл: /// Absolute/path/to/image (3 слэша вместо 2), и он работает. Большое спасибо за подсказку! – IrApp

ответ

1

C: \ Absolute \ path \ to \ image недействительный href. Думаю, вам нужен файл: /// Absolute/path/to/image.