import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.batik.apps.rasterizer.DestinationType;
import org.apache.batik.apps.rasterizer.SVGConverter;
import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
import org.apache.batik.util.XMLResourceDescriptor;
import org.w3c.dom.Document;
public class Test {
public Document createDocument(InputStream in) {
Document doc = null ;
try {
// Create a new svg document.
String parser = XMLResourceDescriptor.getXMLParserClassName();
SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
doc = f.createSVGDocument(null, in);
} catch (IOException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
return doc;
}
public static void main(String[] args) throws Exception {
String svgPath = "D:\\input.svg";
String pngPath = "D:\\test.png";
Test rasterizer = new Test();
InputStream in = new FileInputStream(new File(svgPath));
Document svgXmlDoc = rasterizer.createDocument(in);
// Save this SVG into a file (required by SVG -> PNG transformation process)
File svgFile = File.createTempFile("graphic-", ".svg");
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DOMSource source = new DOMSource(svgXmlDoc);
FileOutputStream fos = new FileOutputStream(svgFile);
try {
transformer.transform(source, new StreamResult(fos));
} finally {
fos.close();
}
// Convert the SVG into PNG
File outputFile =new File(pngPath);
SVGConverter converter = new SVGConverter();
converter.setDestinationType(DestinationType.PNG);
converter.setSources(new String[]{svgFile.toString()});
converter.setDst(outputFile);
converter.execute();
}
}
分享到:
相关推荐
Batik的`Transcoder`接口和相关的实现类,如`JPEGTranscoder`或`PNGTranscoder`,可以将SVG转换为位图格式(如JPEG、PNG)。你需要创建一个`TranscoderInput`对象表示输入的SVG文件,创建一个`TranscoderOutput`...
结合 Batik 和 iText,我们可以实现SVG到PDF的流程自动化,首先使用Batik将SVG转换为PNG,然后利用iText将PNG插入到PDF中。这对于需要在PDF文档中保留高质量图形或图标的情况非常有用,因为SVG的矢量特性确保了图像...
总之,通过Java技术,特别是wmf2svg和Batik库,我们可以方便地将WMF和EMF图像转换为SVG和PNG格式,以适应不同的应用场景和平台需求。这种转换方法不仅保持了图像质量,还确保了良好的跨平台兼容性。
2. **创建Rasterizer**:使用`org.apache.batik.transcoder.TranscoderInput`和`org.apache.batik.transcoder.TranscoderOutput`来定义输入(SVG文档)和输出(PNG图像)。 3. **配置Transcoder**:创建一个`org....
本项目名为"svgToPngJava",专门解决这个问题,它利用了Apache Batik库来实现SVG到PNG的转换。 Apache Batik是Apache软件基金会的一个开源项目,提供了一套完整的SVG工具集。在这个项目中,主要使用的是"batik-all-...
完成WMF到SVG的转换后,我们可以通过 Batik 的`SVGGraphics2D` 和 `PNGTranscoder` 类将SVG文件转换为PNG。`SVGGraphics2D` 用于将SVG图形渲染到内存中的图像,而`PNGTranscoder` 负责将这个图像编码为PNG文件。这个...
以下是一个简单的使用Batik将SVG转换为PNG的步骤: 1. **添加依赖**: 首先,你需要在你的项目中引入Apache Batik的依赖。如果你使用Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.apache....
在Java编程环境中,将SVG(Scalable Vector Graphics)转换为常见的图像格式,如JPEG或PNG,是一项常见的需求。为了实现这一功能,开发者通常需要引入一系列的第三方库。标题所提及的"Java-SVG转图片所需jar包"是...
总之, Batik作为Java平台上的SVG处理库,为开发者提供了强大的SVG解析、生成和转换能力,是Java环境中处理SVG图像的理想选择。通过深入理解和使用Batik的API,开发者能够轻松地在Java应用中集成SVG图形,创建出更加...
3. **SVG到其他格式转换**: Batik框架提供了一种将SVG图像转换为其他格式的能力,如将SVG转换为常见的位图格式(如PNG、JPEG),这对于在不支持SVG的环境中展示图形非常有用。在描述中提到的,就是利用这种特性将...
本文将深入探讨如何使用Java进行“doc/docx转html”以及“wmf与emf转jpg/png图片”的过程,同时也会提及到batik和poi这两个重要的开源库。 首先,让我们来看“doc/docx转html”。在Java中,Apache POI是一个非常...
而PNG(Portable Network Graphics)则是一种无损压缩的位图格式,广泛应用于网页设计、软件开发等领域,支持透明度和索引色。 在本项目中,我们关注的是如何将EMF图片转换为PNG格式,这通常涉及到图像处理和编程...
wmf格式图片转png完整java项目示例,包含所需jdk(jdk1.7.0_80)及完整jar包。 一,实现功能: 1,wmf文件转png文件; 2,wmf格式的base64压缩数据转png图片(带解压base64数据功能); 二,包含的完整jar: batik-...
3. **SVG到其他格式的转换**: Batik不仅限于处理SVG,还支持将SVG转换为其他图像格式,如JPEG、PNG等,以及HTML、PDF和SWF(Flash)等。 4. **SVG生成器**: Batik也提供了生成SVG文档的功能,允许程序动态创建SVG...
2. SVG渲染器: Batik的渲染引擎能够将AST转换成像素图像,可以在屏幕上显示或输出到其他图像格式,如JPEG、PNG等。 3. SVG小部件: Batik提供了Swing组件,可以将SVG图像集成到Java应用程序或Applet中,用户可以...
6. **Rasterizer**: Batik的Rasterizer工具可以将SVG图像转换为位图格式,如JPEG、PNG或TIFF,这对于在不支持SVG的环境中展示图形非常有用。 7. **Transcoder API**: Batik提供了通用的Transcoder API,用于将SVG...
Batik是一个完整的SVG工具集,包括解析器、DOM实现、渲染引擎、CSS样式处理器、Rasterizer(用于将SVG转换为位图格式如JPEG或PNG)以及一系列的命令行工具。 Batik的主要优势在于它提供了SVG的完整生命周期支持,从...
另一种可能性是使用Batik的模块转换成各种格式SVG的通过,如光栅图像(JPEG,PNG或TIFF格式 )或其它矢量格式(EPS或PDF格式 ,后两者由于转码器由Apache FOP提供 )。 Batik工程创建的目的是为开发者提供一系列...
9. **batik-rasterizer-1.14.jar**:Rasterizer模块将SVG图形转换为位图格式,如JPEG、PNG等,这对于将SVG内容嵌入到不支持矢量图形的环境中(如网页)非常有用。 10. **batik-ttf2svg-1.14.jar**:这个工具能够将...
FOP是Apache Batik的一部分,它是一个用于处理XSL-FO(XSL-Format Object)的工具,能够将XML格式的数据转换成PDF、PostScript、PNG、JPEG等静态格式。 Apache Batik是一个开源的SVG(Scalable Vector Graphics)...