我是Apache Batik的新手,想要使用代码转换器https://xmlgraphics.apache.org/batik/using/transcoder.html将JPEG图像转换为SVG图像。
这是我的代码:
public void saveAsSvg() throws Exception {
SVGTranscoder t = new SVGTranscoder();
t.addTranscodingHint(SVGTranscoder.KEY_FORMAT, true);
String svgURI = new File(inputFilePath).toURL().toString();
InputStream inputStream = new FileInputStream(inputFilePath);
Reader inputStreamReader = new InputStreamReader(inputStream);
TranscoderInput input = new TranscoderInput(inputStreamReader);
OutputStream ostream = new FileOutputStream(outputFilePath);
Writer outputStreamWriter = new OutputStreamWriter(ostream);
TranscoderOutput output = new TranscoderOutput(outputStreamWriter);
t.transcode(input, output);
ostream.flush();
ostream.close();
System.exit(0);
}
我的pom.xml符合Convert a SVG image to a JPEG image using Apache Batik:
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-transcoder</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>xmlgraphics-commons</artifactId>
<version>2.1</version>
</dependency>
我得到的例外情况如下:
org.apache.batik.transcoder.TranscoderException: element
at org.apache.batik.transcoder.svg2svg.PrettyPrinter.fatalError(PrettyPrinter.java:1750) ~[batik-transcoder-1.7.jar:1.7+r608262]
at org.apache.batik.transcoder.svg2svg.PrettyPrinter.print(PrettyPrinter.java:253) ~[batik-transcoder-1.7.jar:1.7+r608262]
at org.apache.batik.transcoder.svg2svg.SVGTranscoder.prettyPrint(SVGTranscoder.java:230) ~[batik-transcoder-1.7.jar:1.7+r608262]
at org.apache.batik.transcoder.svg2svg.SVGTranscoder.transcode(SVGTranscoder.java:186) ~[batik-transcoder-1.7.jar:1.7+r608262]
at com.example.SaveAsJpeg.saveAsSvg(SaveAsJpeg.java:80) ~[classes/:na]
.......
无法从我得到的例外中学到任何东西。请帮忙。