项目业务场景中前端合成的文件格式是
svg的,但在
java中不能像
图片那样用IO流读写合成。
转自https://www.cnblogs.com/chenjy1225/p/9662218.html
此文中介绍了如何将
svg转成
png,亲测有效。maven的依赖要使用博主给出的版本,新版本会报各种类缺失的异常。
<!--
svg 转 png -->
package test.Highcharts;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import javax.xml.p...
你可以使用Java的第三方库来将SVG图片转换为PNG格式。一个常用的库是Apache Batik。以下是一个示例代码,演示如何使用Batik将SVG转换为PNG:
```java
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import java.io.*;
public class SVGtoPNGConverter {
public static void convertToPNG(String svgFile, String pngFile) throws Exception {
// 创建SVG转换器
PNGTranscoder transcoder = new PNGTranscoder();
// 设置输入源和输出目标
try (InputStream inputStream = new FileInputStream(svgFile);
OutputStream outputStream = new FileOutputStream(pngFile)) {
TranscoderInput transcoderInput = new TranscoderInput(inputStream);
TranscoderOutput transcoderOutput = new TranscoderOutput(outputStream);
// 执行转换
transcoder.transcode(transcoderInput, transcoderOutput);
public static void main(String[] args) {
String svgFile = "path/to/input.svg";
String pngFile = "path/to/output.png";
try {
convertToPNG(svgFile, pngFile);
System.out.println("SVG to PNG conversion successful!");
} catch (Exception e) {
System.out.println("Error converting SVG to PNG: " + e.getMessage());
请将`path/to/input.svg`替换为要转换的SVG文件的路径,将`path/to/output.png`替换为要保存转换后的PNG文件的路径。运行代码后,它将把SVG文件转换为PNG格式,并将其保存到指定的输出路径。
请注意,使用Batik进行SVG转换需要添加Batik库的依赖。你可以从Apache官方网站下载Batik库的JAR文件,并将其添加到你的项目中。
希望这可以帮助到你!如果你有任何其他问题,请随时提问。