java – 使用Apache Batik将SVG图像转换为JPEG图像
发布时间:2020-12-15 04:34:38 所属栏目:Java 来源:网络整理
导读:我正在尝试将SVG图像转换为JPEG,如 https://xmlgraphics.apache.org/batik/using/transcoder.html#createImage示例所示.这是代码: public void saveAsjpeg() throws Exception { // Create a JPEG transcoder JPEGTranscoder t = new JPEGTranscoder(); //
我正在尝试将SVG图像转换为JPEG,如
https://xmlgraphics.apache.org/batik/using/transcoder.html#createImage示例所示.这是代码:
public void saveAsjpeg() throws Exception { // Create a JPEG transcoder JPEGTranscoder t = new JPEGTranscoder(); // Set the transcoding hints. t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,new Float(.8)); // Create the transcoder input. String svgURI = new File(inputFilePath).toURL().toString(); TranscoderInput input = new TranscoderInput(svgURI); // Create the transcoder output. OutputStream ostream = new FileOutputStream(outputFilePath); TranscoderOutput output = new TranscoderOutput(ostream); // Save the image. t.transcode(input,output); // Flush and close the stream. ostream.flush(); ostream.close(); System.exit(0); } 下面是我的pom.xml.我正在尝试春季启动项目: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.4.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-transcoder</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-codec</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-svgpp</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-rasterizer</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-squiggle</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>xmlgraphics-commons</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-ttf2svg</artifactId> <version>1.8</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> 我得到以下异常: org.apache.batik.transcoder.TranscoderException: null Enclosed Exception: null at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source) at SaveToJPEG.saveAsjpeg(SaveToJPEG.java:31) at SaveToJPEG.main(SaveToJPEG.java:42) 我在这里有几个问题: >为什么异常堆栈跟踪显示“未知来源”并且异常是如此无法提供信息?我在Google上搜索并了解如果罐子上没有附加源,那么例外可能没有信息.我已将插件代码放在pom中以添加源代码.但这不起作用. 解决方法
我不知道是谁发布了这个神器,但它已经为我解决了这个问题
<dependency> <groupId>fr.avianey.apache-xmlgraphics</groupId> <artifactId>batik</artifactId> <version>1.8</version> </dependency> 这些类包含在此工件中 > org.apache.batik.ext.awt.image.codec.imageio.ImageIOPNGImageWriter> org.apache.batik.ext.awt.image.codec.imageio.ImageIOTIFFImageWriter> org.apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGImageWriter (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |