2017-02-17 24 views
0

我正在嘗試使用BatikJSVGCanvas中顯示SVG file。在這個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

好吧,我明白了。我寫了file:/// Absolute/path/to/image(3個斜槓而不是2),它正在工作。非常感謝小費! – IrApp

回答

1

C:\ Absolute \ path \ to \ image不是有效的href。我想你想要file:/// Absolute/path/to/image來代替。