2017-02-20 96 views
-2

這裏,我嘗試將SVG圖像發送到本地服務器,並且在輸出中我想以PNG/JPEG格式下載該圖像。通過servlet將svg圖像轉換爲java中的png

雖然我找到了一些解決方案,但這些解決方案是由BATIK庫完成的,但是在我的Eclipse中不支持BATIK庫,因此我無法使用蠟染庫。

+2

發佈您的代碼。 – techhunter

+0

在您的eclipse項目中創建一個名爲lib的文件夾,將BATIK庫複製到lib文件夾中,右鍵單擊libraray「jar」並選擇 - > add to buildpath。 –

+0

先生,我可以在哪裏找到蠟染庫? @krzysztof Cichocki –

回答

2

使用蠟染庫。以下是代碼。

import java.io.*; 
    import org.apache.batik.transcoder.image.PNGTranscoder; 
    import org.apache.batik.transcoder.TranscoderInput; 
    import org.apache.batik.transcoder.TranscoderOutput; 
    import java.nio.file.Paths; 
    import java.nio.file.Path; 
    public class svg2png { 
     public static void main(String[] args) throws Exception { 
      //Step -1: We read the input SVG document into Transcoder Input 
      //We use Java NIO for this purpose 
      String svg_URI_input = Paths.get("chessboard.svg").toUri().toURL().toString(); 
      TranscoderInput input_svg_image = new TranscoderInput(svg_URI_input);   
      //Step-2: Define OutputStream to PNG Image and attach to TranscoderOutput 
      OutputStream png_ostream = new FileOutputStream("chessboard.png"); 
      TranscoderOutput output_png_image = new TranscoderOutput(png_ostream);    
      // Step-3: Create PNGTranscoder and define hints if required 
      PNGTranscoder my_converter = new PNGTranscoder();   
      // Step-4: Convert and Write output 
      my_converter.transcode(input_svg_image, output_png_image); 
      // Step 5- close/flush Output Stream 
      png_ostream.flush(); 
      png_ostream.close();   
     } 
} 

希望它能幫助你。

參考這樣的:http://thinktibits.blogspot.com/2012/12/Batik-Convert-SVG-PNG-Java-Program-Example.html

+0

我也有這個代碼,但在我的日食中有蠟染庫的錯誤。 BATIK庫支持,爲此我應該怎麼做? –

+0

檢查版本兼容性。 https://www.java-forums.org/new-java/34405-installing-batik-use-eclipse.html – techhunter

+0

也參考:https://xmlgraphics.apache.org/batik/ – techhunter

0

你也可以轉換SVG爲PNG格式,而無需使用蠟染轉碼器。按照下面的鏈接: https://nupur28ag.blogspot.in/

BufferedImage input_image = null; 
input_image = ImageIO.read(new File("Convert_to_PNG.svg")); //read svginto input_image object 
File outputfile = new File("imageio_png_output.png"); //create new outputfile object 
ImageIO.write(input_image, "PNG", outputfile); 

只需使用ImageIO庫。希望這會有所幫助!

+0

此代碼不起作用 –