這裏,我嘗試將SVG圖像發送到本地服務器,並且在輸出中我想以PNG/JPEG格式下載該圖像。通過servlet將svg圖像轉換爲java中的png
雖然我找到了一些解決方案,但這些解決方案是由BATIK庫完成的,但是在我的Eclipse中不支持BATIK庫,因此我無法使用蠟染庫。
這裏,我嘗試將SVG圖像發送到本地服務器,並且在輸出中我想以PNG/JPEG格式下載該圖像。通過servlet將svg圖像轉換爲java中的png
雖然我找到了一些解決方案,但這些解決方案是由BATIK庫完成的,但是在我的Eclipse中不支持BATIK庫,因此我無法使用蠟染庫。
使用蠟染庫。以下是代碼。
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
我也有這個代碼,但在我的日食中有蠟染庫的錯誤。 BATIK庫支持,爲此我應該怎麼做? –
檢查版本兼容性。 https://www.java-forums.org/new-java/34405-installing-batik-use-eclipse.html – techhunter
也參考:https://xmlgraphics.apache.org/batik/ – techhunter
你也可以轉換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
庫。希望這會有所幫助!
此代碼不起作用 –
發佈您的代碼。 – techhunter
在您的eclipse項目中創建一個名爲lib的文件夾,將BATIK庫複製到lib文件夾中,右鍵單擊libraray「jar」並選擇 - > add to buildpath。 –
先生,我可以在哪裏找到蠟染庫? @krzysztof Cichocki –