2016-05-11 42 views
0

我有一個MulipartFile齲齒SVG圖像的對象。我想將其轉換爲JPEG格式。我怎樣才能做到這一點?我嘗試了以下方法,但因爲系統找不到指定的文件而導致Enclosed Exception。如何將SVG轉換爲java中的JPEG

 JPEGTranscoder t = new JPEGTranscoder(); 

     File f = new File("temp.svg"); 
     multipartfile.transferTo(f); 
     // Create a JPEG transcoder 

     // Set the transcoding hints. 
     t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, 
        new Float(.8)); 

     // Create the transcoder input. 
     String svgURI = f.toURL().toString(); 
     TranscoderInput input = new TranscoderInput(svgURI); 

     // Create the transcoder output. 
     OutputStream ostream = new FileOutputStream("out.jpg"); 
     TranscoderOutput output = new TranscoderOutput(ostream); 

     // Save the image. 
     t.transcode(input, output); 

     // Flush and close the stream. 
     ostream.flush(); 
     ostream.close(); 
+0

你嘗試過這麼遠嗎? 「batik convert svg to jpeg」的互聯網搜索引擎的第一個結果是https://xmlgraphics.apache.org/batik/tools/rasterizer.html。 – SubOptimal

+0

已更新代碼 – user2329189

回答

0

我假設你使用蠟染1.8,因爲以下步驟使用蠟染1.7但與1.8失敗。

  1. 下載從的batik download mirrors
  2. 一個二進制分發版1.7中提取存檔(將創建目錄./batik-1.7.1/
  3. batik transcoder example
  4. 保存例如SaveAsJPEG.java編譯
    javac -cp batik-1.7.1/batik.jar SaveAsJPEG.java
  5. 來看,它
    java -cp batik.jar:. SaveAsJPEG foobar.svg

這將創建一個out.jpg

使用的1.8版鉛相同的步驟進入

Exception in thread "main" org.apache.batik.transcoder.TranscoderException: null 
Enclosed Exception: 
null 
    at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source) 
    at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source) 
    at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source) 
    at SaveAsJPEG.main(SaveAsJPEG.java:27) 
+0

您正在使用哪個java版本? –