java将svg图片转换为png格式图片
来源:互联网 发布:自动清理内存软件 编辑:程序博客网 时间:2024/05/16 12:40
有时候在客户端使用svg画图,而在服务器端需要同样的图片,在服务器端重新画一遍是非常费事的。这时候我们就可以利用已有的svg直接通过下面的类转换成png格式。
使用这个方法需要引用batic相关的包,maven pom文件如下:
<!-- svg 生成png格式图片 --><dependency><groupId>batik</groupId><artifactId>batik-svggen</artifactId><version>1.6</version></dependency> <dependency><groupId>batik</groupId><artifactId>batik-awt-util</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-bridge</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-css</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-dom</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-gvt</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-parser</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-script</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-svg-dom</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-transcoder</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-util</artifactId><version>1.6</version></dependency><dependency><groupId>batik</groupId><artifactId>batik-xml</artifactId><version>1.6</version></dependency><!-- 此处不能使用2.9.1版本,使用2.9.1生成png会失败 --><dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.5.0</version></dependency><dependency><groupId>xml-apis</groupId><artifactId>xmlParserAPIs</artifactId><version>2.0.2</version></dependency> <dependency><groupId>org.axsl.org.w3c.dom.svg</groupId><artifactId>svg-dom-java</artifactId><version>1.1</version></dependency> <dependency><groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId><version>2.0.0</version></dependency> <dependency><groupId>org.w3c.css</groupId> <artifactId>sac</artifactId> <version>1.3</version></dependency><!-- svg 生成png格式图片结束 -->
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(); } } } }}
- java将svg图片转换为png格式图片
- java将svg图片转换为png格式图片
- inkscape将png图片转换为svg格式的矢量图
- Android将webp格式图片转换为png格式方法
- java 将bmp图片转换为png图片
- 【整理】查看SVG图片,将SVG图片转换为PNG,JPG,TIF等方面的工具或软件
- 将图片转换成svg格式
- 用java将png图片转换成jpg格式的图片
- 如何将bitmap 压缩/转换为jpg/png格式的图片存贮
- Ubuntu16.04将.png/.jpg图片转换为.eps/.pdf格式
- 保存图片为svg格式
- 将图片转换base64格式,data:image/png;base64是什么?
- 将图片转换为ICON格式
- 将iPhone中tga格式的图片转换为其他格式(png、bmp等)的工具(Windows版本)
- 如何将iPhone程序中的png图片转换为可读的png图片(Windows版本)
- 将iPhone和iPod Touch png图片转换为可读png图片的源码(Python)
- 将visio的图片插入latex(png格式转换成eps格式图片)
- C++ BMP图片转换为PNG图片
- java中阴历和阳历的转换
- 选机房
- JQPLOT
- Android应用开发学习笔记之AsyncTask
- Android系统文件夹结构!以及ROM定制初级教程!
- java将svg图片转换为png格式图片
- [翻译]理解AS3的垃圾回收机制(上)
- Freemarker的内置函数及用法
- 平时运用 小方法
- 实例解析递归
- 快速聚类算法
- Let's GO GO GO
- 主板前置面板插线插法
- Android Service学习之本地服务