`
seeallsea
  • 浏览: 41685 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Batik把SVG转换为图片

阅读更多

        Batik是使用svg格式图片来实现各种功能的应用程序以及Applet提供的一个基于java的工具包,可以使用Batik把SVG转换为图片。

        Batik的project link是http://xmlgraphics.apache.org/batik/,我下载的是1.7。

        新建一个Java工程,把Batik解压后的目录中的batik.jar, batik-rasterizer.jar,batik-slideshow.jar,batik-squiggle.jar,batik-svgpp.jar,batik-ttf2svg.jar加入到工程的classpath中,把batik-1.7/lib目录下的所有Jar包都加入到工程的classpath中,再把batik-1.7\extensions目录下的所有jar包都加入到工程的classpath中。

        写一段测试程序如下:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;

public class BatickSVGTest {

	public static void main(String[] args) {
                //svg文件的路径
		String svgFileName = "d:\\svg_code.txt";
		File svgFile = new File(svgFileName);
		FileOutputStream outputStream = null;

		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			FileInputStream fis = new FileInputStream(svgFile);
			byte[] buf = new byte[4096];
			int len = 0;
			while ((len = fis.read(buf)) != -1) {
				baos.write(buf, 0, len);
			}

			String svgCode = new String(baos.toByteArray());

			System.out.println("svgCode:" + svgCode);

			String pngFilePath = "d:\\PNG.png";

			File file = new File(pngFilePath);

			file.createNewFile();
			outputStream = new FileOutputStream(file);
			convertSVGToPng(svgCode, outputStream);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				outputStream.close();
			} catch (IOException e) {
			}
		}
	}

	public static void convertSVGToPng(String svgCode, OutputStream outputStream) {
		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();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				outputStream.close();
			} catch (IOException e) {
			}
		}
	}
}

 

 准备好一段svg的源文件,d:\\svg_code.txt,输出的文件为d:\\PNG.png,现在就可以测试了。

分享到:
评论

相关推荐

    使用batik转换svg文件

    Batik还提供了`CSSGenerator`和`JSGenerator`,可以将SVG转换为CSS样式表或JavaScript代码,使得SVG可以在没有原生SVG支持的环境中运行。 7. **命令行工具**: 除了Java API,Batik还提供了许多命令行工具,如`...

    batik将svg转成图片,并用itext将图片写在pdf里

    结合 Batik 和 iText,我们可以实现SVG到PDF的流程自动化,首先使用Batik将SVG转换为PNG,然后利用iText将PNG插入到PDF中。这对于需要在PDF文档中保留高质量图形或图标的情况非常有用,因为SVG的矢量特性确保了图像...

    java svg格式转换成图片格式

    以下是一个简单的使用Batik将SVG转换为PNG的步骤: 1. **添加依赖**: 首先,你需要在你的项目中引入Apache Batik的依赖。如果你使用Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.apache....

    JAVA WMF 转换SVG,PNG

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

    Eclipse 的svg插件batik-plugin

    一、概述 Batik是为想使用svg格式图片来实现各种功能的应用程序和Applet提供的一个基于java的工具包。...另外还可以使用Batik的模块将SVG转换为其他格式,比如说JPEG等图像格式和 PDF等其他向量格式.

    svg_jar Batik

    5. **Font Converter**: 用于将TrueType字体转换为SVG字体,以便在SVG环境中使用。 **Batik的API** 提供了丰富的类和接口,让开发者能够方便地处理SVG内容。例如,`org.apache.batik.svggen.SVGGraphics2D` 类允许...

    Java-SVG转图片所需jar包

    虽然主要针对非SVG格式,但在某些情况下,FOP可能用于将SVG转换为PDF,然后再转为图片。 4. **standard-1.1.2.jar**:可能是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于在JSP页面中处理XML和HTML...

    将WMF图片格式转换成PNG

    总的来说,这个项目提供了一种使用Java和Batik库将WMF格式的图片转换为PNG的方法,这对于需要在各种平台和设备上保持一致显示效果的图形处理工作非常有帮助。通过理解这个过程,你可以扩展这个方法,处理更多类型的...

    Batik 1.7 API CHM格式

    Batik是使用svg格式图片来实现各种功能的应用程序以及Applet提供的一个基于java的工具包。 通过Batik,你可以在JAVA可以使用的地方操作SVG文档,您还可以在你的应用程序使用Batik模块来生成 , 处理和转码SVG图像。...

    SVG转EMF的示例代码

    本示例代码是关于如何使用Java将SVG转换为EMF,这在需要在Windows系统中处理矢量图形时非常有用,因为EMF是Windows系统广泛支持的格式。 SVG是一种基于XML的开放标准,用于描述2D图形。它支持复杂的形状、路径、...

    batik源码(包含sample)

    3. **SVG到其他格式的转换**: Batik不仅限于处理SVG,还支持将SVG转换为其他图像格式,如JPEG、PNG等,以及HTML、PDF和SWF(Flash)等。 4. **SVG生成器**: Batik也提供了生成SVG文档的功能,允许程序动态创建SVG...

    batik框架 jar包

    3. **SVG到其他格式转换**: Batik框架提供了一种将SVG图像转换为其他格式的能力,如将SVG转换为常见的位图格式(如PNG、JPEG),这对于在不支持SVG的环境中展示图形非常有用。在描述中提到的,就是利用这种特性将...

    org.apache.batik包

    4. **SVG生成器(SVG Generator)**: Batik可以将非SVG图形(如Swing组件或Java2D绘制)转换为SVG,这对于创建跨平台的图形输出非常有用。 5. **SVG字体**: Batik包含了对SVG字体的支持,允许在SVG文档中使用...

    svgToPngJava:在Java中将svg转换为png

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

    batik-1.13.rar

    - 工具: 可能包括一些命令行工具,如SVG转换工具等。 通过利用Batik,开发者可以轻松地在Java应用程序中集成SVG功能,例如创建动态图形、数据可视化、图标库等。此外,由于SVG是开放标准,因此使用Batik开发的应用...

    基于Batik的java客户端程序

    Batik是一个完整的SVG工具集,包括解析器、DOM实现、渲染引擎、CSS样式处理器、Rasterizer(用于将SVG转换为位图格式如JPEG或PNG)以及一系列的命令行工具。 Batik的主要优势在于它提供了SVG的完整生命周期支持,从...

    svgtoandroid,一个IntelliJ平台插件,用于将SVG转换为Android VectorDrawable.zip

    在移动应用开发领域,尤其是Android平台,为了实现高清晰度和多分辨率适配,开发者常常需要将矢量图形(SVG)转换为Android支持的VectorDrawable格式。手动转换不仅耗时,而且容易出错。幸运的是,有了SVGtoAndroid...

    php+batik 实现导出highchart图片功能

    Batik提供了将SVG渲染到各种输出设备的能力,包括将SVG转换为位图图像(如PNG、JPEG等)。 要实现PHP与Highcharts结合导出图片,通常需要以下步骤: 1. **生成SVG**:首先,你需要使用Highcharts API在客户端...

Global site tag (gtag.js) - Google Analytics