失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java更改svg图片颜色_使用Batik绘制SVG图并保存为png图像格式

java更改svg图片颜色_使用Batik绘制SVG图并保存为png图像格式

时间:2021-09-20 13:38:50

相关推荐

java更改svg图片颜色_使用Batik绘制SVG图并保存为png图像格式

SVG(Scalable Vector Graph)--可缩放矢量图形.

可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描写叙述二维矢量图形的一种图形格式。它由万维网联盟制定。是一个开放标准。

思考

使用SVG实现一个miniCAD

package cn.outofmemory.util;

import java.io.ByteArrayInputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

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;

/**

* 将svg转换为png格式的图片

*

*

*/

public abstract class SvgPngConverter {

/**

* 将svg字符串转换为png

*

* @param svgCode svg代码

* @param pngFilePath 保存的路径

* @throws TranscoderException svg代码异常

* @throws IOException io错误

*/

public static void convertToPng(String svgCode, String pngFilePath) throws IOException,

TranscoderException {

File file = new File(pngFilePath);

FileOutputStream outputStream = null;

try {

file.createNewFile();

outputStream = new FileOutputStream(file);

convertToPng(svgCode, outputStream);

} finally {

if (outputStream != null) {

try {

outputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

/**

* 将svgCode转换成png文件。直接输出到流中

*

* @param svgCode svg代码

* @param outputStream 输出流

* @throws TranscoderException 异常

* @throws IOException io异常

*/

public static void convertToPng(String svgCode, OutputStream outputStream)

throws TranscoderException, IOException {

try {

byte[] bytes = svgCode.getBytes("utf-8");

PNGTranscoder t = new PNGTranscoder();

TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(bytes));

TranscoderOutput output = new TranscoderOutput(outputStream);

t.transcode(input, output);

outputStream.flush();

} finally {

if (outputStream != null) {

try {

outputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

编译依赖:

batik-all-1.7.jar xml-commons-external-1.4.01.jar

拷贝上两个jar到classpath或当前文件夹下,编译自己定义程序:

javac -classpath batik-all-1.7.jar XXX.java

程序中调用:convertToPng(tmp_str, outimgfilename);

如果觉得《java更改svg图片颜色_使用Batik绘制SVG图并保存为png图像格式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。