2017-02-17 4 views
0

JSVGCanvasSVG fileを表示しようとしていますが、Batikを使用しています。このSVGファイルには画像があります。事は画像が表示されていないことです。その代わりに私はエラー画像を取得します。これは私のコードです:SVGファイルがブラウザでopennedされている場合は表示画像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); 

NOTE 、画像が正しく表示されます。

+0

私もこれを試しましたが、どちらもうまく動作しません – IrApp

+0

OK、私はそれを得ました。私はfile:/// Absolute/path/to/image(2の代わりに3つのスラッシュ)を書いており、動作しています。ヒントありがとう! – IrApp

答えて

1

C:\ Absolute \ path \ to \ imageは有効なhrefではありません。あなたはfile:///絶対/パス/ to/imageを代わりにしたいと思います。