使用 Apache 蜡染从 SVG 生成 JPG



我正在尝试将.svg文件转换为.jpg.png文件。现在我正在尝试使用Apache Batik转码器(链接)。

这是我现在的代码:(官方代码来自这里)

// 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("C:/test.svg").toURL().toString();
TranscoderInput input = new TranscoderInput(svgURI);
// Create the transcoder output.
OutputStream ostream = new FileOutputStream("C:/out.jpg");
TranscoderOutput output = new TranscoderOutput(ostream);
// Save the image.
t.transcode(input, output);
// Flush and close the stream.
ostream.flush();
ostream.close();
System.exit(0);

但它给了我这个错误:

线程"main"中的异常 org.apache.batik.transcoder.TranscoderException: 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 SaveAsJPEG.main(SaveAsJPEG.java:27)

我不知道该怎么办,因为这是他们网站上的代码(!因此,如果您知道如何解决它或有其他想法,如何将我的.svg图片变成.jpg,.png让我知道。

好吧,我现在已经找到了解决问题的方法。似乎蜡染 1.8(我使用过)无法正常工作(或者至少不能按照他们在 API 页面上所说的方式工作。

我现在使用蜡染 1.7 效果很好。所以现在一切都很好,对于每个想使用 Batik 的人来说:我建议你使用 1.7,因为文档不是关于 1.8 的。

如果将batik-codec添加到maven而不是transcoder,则可以解决此问题。

最新更新