`

关于SVG转换png

 
阅读更多

   下面以FoxBPM项目中svg转换png参考。

   首先需要导入svg转换图片相关的jar包文件

		<!-- svg 相关jar -->
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-transcoder</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-bridge</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-codec</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-css</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-svg-dom</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-svggen</artifactId>
			<version>${batik.version}</version>
		</dependency>
		<!-- end svg 相关jar -->

   以上是maven项目中svg转换png需要的依赖配置,其中${batik.version}为版本号  

<properties>
    <batik.version>1.7</batik.version>
</properties>

 

   

   svg转换png的执行代码

/**
 * Copyright 1996-2014 FoxBPM ORG.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * @author yangguangftlp
 */
package org.foxbpm.engine.impl.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.foxbpm.engine.exception.ExceptionCode;
import org.foxbpm.engine.exception.FoxBPMException;
import org.foxbpm.engine.exception.FoxBPMIllegalArgumentException;

/**
 * svg 转换操作工具类
 * 
 * @author yangguangftlp
 * @date 2014年7月17日
 */
public class SVGConverterUtil {

	/** 实例 */
	private static SVGConverterUtil instance;

	private SVGConverterUtil() {
	}

	/**
	 * 获取实例
	 * 
	 * @return 返回实例
	 */
	public static SVGConverterUtil getInstance() {
		if (null == instance) {
			synchronized (SVGConverterUtil.class) {
				if (null == instance) {
					instance = new SVGConverterUtil();
				}
			}
		}
		return instance;
	}

	/**
	 * 将svg转换成png svgCode参数不能为空
	 * 
	 * @param svgCode
	 *            svg 内容
	 * @throws FoxBPMException
	 * @return 返回转换后的png 字节数据
	 */
	public byte[] convertToPng(String svgCode) {
		// 创建内存输入流
		ByteArrayInputStream in = null;
		// 创建内存输出流
		ByteArrayOutputStream out = null;
		try {
			if (StringUtil.isEmpty(svgCode)) {
				throw new FoxBPMIllegalArgumentException(ExceptionCode.ILLEGALARGUMENTEXCEPTION_ISNULL, "svgCode is null !");
			}
			PNGTranscoder transcoder = new PNGTranscoder();
			in = new ByteArrayInputStream(svgCode.getBytes("utf-8"));
			out = new ByteArrayOutputStream(1024);
			transcoder.transcode(new TranscoderInput(in), new TranscoderOutput(out));
			out.flush();
			return out.toByteArray();
		} catch (Exception e) {
			throw new FoxBPMException(ExceptionCode.CONVERTERTER_SVG_ERROR, e);
		} finally {
			if (null != in) {
				try {
					in.close();
				} catch (IOException e) {
					throw new FoxBPMException(ExceptionCode.IO_CLOSE_ERROR, e);
				}
			}
			if (null != out) {
				try {
					in.close();
				} catch (IOException e) {
					throw new FoxBPMException(ExceptionCode.IO_CLOSE_ERROR, e);
				}
			}
		}
	}
}

 

  • batik-all-1.7.jar (3.2 MB)
  • 描述: 包含所有svg转换图片的所有jar包
  • 下载次数: 2
分享到:
评论

相关推荐

    C#Svg转换为png/jpeg等图片(C#版)

    3. **创建Bitmap对象**:为了将SVG转换为位图,你需要创建一个`Bitmap`对象,设定它的宽度和高度。这些值可以基于SVG文档的尺寸,或者根据需求自定义。 ```csharp int width = svgDocument.Width.Value; int ...

    c/c++ svg转png, svg文件渲染例子

    本篇将深入探讨如何使用C/C++编程语言和PlutoSVG库来实现SVG到PNG的转换。 首先,让我们了解PlutoSVG库。PlutoSVG是一个开源的C++库,专门用于解析SVG文件并将其渲染到各种位图格式,如PNG。它支持SVG的基本特性,...

    JAVA WMF 转换SVG,PNG

    首先,`wmf2svg-0.9.5.jar`被用来将`input.wmf`转换为`output.svg`,然后`PNGTranscoder`类将SVG转换为PNG并保存为`output.png`。 总之,通过Java技术,特别是wmf2svg和Batik库,我们可以方便地将WMF和EMF图像转换...

    SVG转PNG批量.7z

    然而,由于浏览器和其他应用程序对SVG支持程度的差异,有时我们需要将SVG转换为更通用的位图格式,如PNG。"SVG转PNG批量"工具就是这样一个解决方案,它可以高效地将SVG文件批量转换为PNG。 SVGToImage.exe 是这个...

    .net c#源码实例SVG转换png/jpeg/jpg/pdf(svg.dll itextsharp.dll)

    2. SVG转换为PNG/JPEG/JPG: 这些是常见的位图格式,用于网络传输和存储。转换过程与SVG转Image类似,但需要额外保存为特定格式。C#内置的System.Drawing命名空间提供了Graphics和Image对象,可以用来将绘制的图像...

    svg转png.zip

    SVG(Scalable Vector ...将SVG转换为PNG则是一个实用的技巧,尤其当兼容性或特定需求成为问题时。理解这两种格式的特点并熟练运用它们,对于任何IT从业者,特别是前端开发者和图形设计师来说,都是必备的知识点。

    svg to png

    然而,在某些情况下,我们可能需要将SVG图形转换为PNG(Portable Network Graphics)格式,这主要是因为PNG是一种位图格式,更适合于背景透明、需要像素级别的渲染或者需要在不支持SVG的环境中使用的场景。...

    最新canvg.js 将SVG转换成Png(1.4)

    "最新canvg.js 将SVG转换成Png(1.4)" 这个标题提到了一个JavaScript库——canvg.js,它的版本是1.4,主要用于将SVG(可缩放矢量图形)图像转换为PNG(位图)格式。这个功能在网页设计和开发中非常有用,因为SVG是...

    Python-python实现svg转png服务

    `cairosvg`是一个用Python编写的SVG渲染器,它可以将SVG转换为多种位图格式,包括PNG。`PIL`则是Python图像处理的标准库,虽然在这个场景下它并非必需,但在某些情况下,如调整图像尺寸或添加水印时,可能会用到。 ...

    svg2png:SVG到PNG转换器,针对Android优化

    免费SVG到PNG转换器目标在SVG中管理您的图标,并根据需要将所需的PNG生成到您的项目中。 无需“ Web服务”,只需一个可执行的JAR文件。下载和要求您必须在PC上安装Java 8 旁注:CLI示例使用java -jar svg2png 或下载...

    SVG矢量图 转换 png jpg bmp 批量转换

    3. 对于Node.js开发者,`svg2png`库允许将SVG转换为PNG,而`sharp`库则可以处理多种图像格式,包括PNG、JPEG和BMP的转换。这两个库都是基于Vips图像处理库,提供了高效的性能。 批量转换的关键在于遍历SVG文件列表...

    svg 转 png 相关 jar文件

    在Java环境中,如果需要将SVG转换为PNG,可以利用Apache Batik库。Batik是Apache软件基金会的一个开源项目,它提供了一系列工具和Java类库来处理SVG图像,包括将SVG渲染为各种位图格式,如PNG。在这个场景中,我们...

    dxf转svg,svg转png

    标题提到的“dxf转svg,svg转png”涉及两种不同的转换过程,都是图形文件格式之间的转换。DXF(Drawing Exchange Format)是AutoCAD用于二维绘图的数据交换格式,SVG(Scalable Vector Graphics)是一种基于XML的矢量...

    svgToPngJava:在Java中将svg转换为png

    以下是如何使用这些库在Java中将SVG转换为PNG的基本步骤: 1. 引入依赖:首先,你需要在你的项目中引入上述的三个库文件,这可以通过Maven或Gradle等构建工具完成,或者直接将它们添加到项目的类路径中。 2. 解析...

    svg2png qt转换

    描述中提到"QT封装的将svg转换成png图形化操作",意味着这个工具或代码库提供了用户友好的图形界面,使得用户可以通过直观的交互方式来完成SVG到PNG的转换,而无需编写命令行指令或者理解复杂的代码。这对于非技术...

    svg转png插件saveSvgAsPng

    在Web开发中,有时需要将SVG图形转换为PNG,以适应不支持SVG或需要位图特性的浏览器。"saveSvgAsPng"插件就是为了这个目的而存在的。 `saveSvgAsPng`是一个JavaScript库,专门用于在浏览器环境中将SVG元素转换为PNG...

    svg2png:在浏览器中将 SVG 文件转换为 PNG

    "svg2png"项目正是为了解决这个问题,它提供了一个JavaScript库,可以在浏览器环境中将SVG转换为PNG。 这个库的核心原理是利用HTML5的Canvas API。Canvas是一个二维绘图上下文,可以用来绘制图形、文字等,并将其...

    D3.js svg转png demo

    本文将详细介绍如何使用D3.js结合其他工具,如`saveSvgAsPng`库,实现SVG到PNG的转换。 首先,我们要了解SVG和PNG的区别。SVG是矢量图,由路径、形状和文本等元素组成,其大小与屏幕分辨率无关,适合大型、复杂或...

    svg2png:使用PhantomJS将SVG转换为PNG

    使用PhantomJS的SVG到PNG转换器 您有一个SVG文件。 无论出于何种原因,您都需要PNG。 svg2png可以提供帮助。 const fs = require ( "pn/fs" ) ; // https://www.npmjs.com/package/pn const svg2png = require ( ...

    svg转换成Android 可用的vector

    本教程将指导你如何将SVG转换为Android可用的VectorDrawable资源。 首先,你需要下载提供的压缩包`svg2android-gh-pages`。这是一个在线工具的源代码,该工具可以方便地将SVG文件转换为Android VectorDrawable的XML...

Global site tag (gtag.js) - Google Analytics