通过servlet将svg映像转换为java中的png

时间:2017-02-20 09:31:05

标签: java servlets svg png

在这里,我正在尝试将SVG图像发送到本地服务器,在输出中我想以PNG / JPEG格式下载该图像。

虽然我找到了一些解决方案,但这些都是由BATIK库完成的,但在我的Eclipse中不支持BATIK库,所以我不能使用batik库。

2 个答案:

答案 0 :(得分:3)

使用蜡染库。下面是代码。

    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

答案 1 :(得分:-1)

您也可以在不使用Batik Transcoder的情况下将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库。希望这会有所帮助!