我正在尝试将. svg文件转换为.jpg或.png文件。现在我正在尝试使用Apache Batik Transcoder(Link)。
这是我现在的代码:(这里的官方代码)
// 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
封闭例外:
空
在org. apache.batik.transcode.image.ImageTranscode.transcode(未知来源)
在org. apache.batik.transcode.XMLAbstractTranscode.transcode(未知来源)
在org. apache.batik.transcode.SVGAbstractTranscode.transcode(未知来源)
在SaveAsJPEG. main(SaveAsJPEG.java:27)
我不知道该怎么办,因为这是他们网站上的代码(!)。所以如果你知道如何解决它,或者有其他想法如何将我的. svg图片转换为.jpg和.png,请告诉我。
嗯,我现在找到了解决我问题的方法。蜡染1.8(我用过)似乎不能正常工作(或者至少不能像他们在API页面上说的那样工作。
我现在用蜡染1.7就可以了。所以现在一切都很好,对每个想使用蜡染的人来说:我建议你使用1.7,因为留档不是1.8。
如果您将batik-codec
添加到maven
而不是转码器
,就可以解决这个问题。