java中data:image/svg+xml;base64,转png
时间: 2024-02-06 15:09:51 浏览: 188
c/c++ svg转png, svg文件渲染例子
5星 · 资源好评率100%
在Java中将base64编码的SVG图片转换为PNG格式可以使用以下代码:
```java
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
public class SVGToPNGConverter {
public static byte[] convert(String svg) throws IOException, TranscoderException {
byte[] svgBytes = svg.getBytes("UTF-8");
ByteArrayInputStream inputStream = new ByteArrayInputStream(svgBytes);
TranscoderInput input = new TranscoderInput(inputStream);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outputStream);
PNGTranscoder transcoder = new PNGTranscoder();
transcoder.transcode(input, output);
return outputStream.toByteArray();
}
}
```
使用方法:
```java
String svg = "data:image/svg+xml;base64,PHN2ZyB...";
byte[] pngBytes = SVGToPNGConverter.convert(svg);
```
其中,`svg`是base64编码的SVG图片字符串。转换后的PNG图片数据存储在`pngBytes`中。请注意,这里使用了Apache Batik库进行SVG转换,需要先添加Batik的依赖。
阅读全文