使用 Apache Batik 从 SVG 生成 JPG
Generate JPG from SVG using Apache Batik
我正在尝试将 .svg 文件转换为 .jpg 或 .png 文件。现在我正在尝试使用 Apache Batik Transcoder (Link).
这是我现在的代码:(来自here的官方代码)
// 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);
但它给我这个错误:
Exception in thread "main" 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 SaveAsJPEG.main(SaveAsJPEG.java:27)
我不知道该怎么做,因为这是他们网站上的代码 (!)。因此,如果您知道如何解决它或有其他想法如何将我的 .svg 图片转换为 .jpg 和 .png,请告诉我。
好吧,我现在找到了解决问题的方法。似乎 Batik 1.8(我用过)不能正常工作(或者至少不能像他们在 API 页面上所说的那样工作。
我现在使用 Batik 1.7 效果很好。所以现在一切都很好,对于所有想使用 Batik 的人:我建议你使用 1.7,因为文档不是关于 1.8 的。
如果将 batik-codec
添加到 maven
而不是 transcoder
,则可以解决此问题。
我正在尝试将 .svg 文件转换为 .jpg 或 .png 文件。现在我正在尝试使用 Apache Batik Transcoder (Link).
这是我现在的代码:(来自here的官方代码)
// 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);
但它给我这个错误:
Exception in thread "main" 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 SaveAsJPEG.main(SaveAsJPEG.java:27)
我不知道该怎么做,因为这是他们网站上的代码 (!)。因此,如果您知道如何解决它或有其他想法如何将我的 .svg 图片转换为 .jpg 和 .png,请告诉我。
好吧,我现在找到了解决问题的方法。似乎 Batik 1.8(我用过)不能正常工作(或者至少不能像他们在 API 页面上所说的那样工作。
我现在使用 Batik 1.7 效果很好。所以现在一切都很好,对于所有想使用 Batik 的人:我建议你使用 1.7,因为文档不是关于 1.8 的。
如果将 batik-codec
添加到 maven
而不是 transcoder
,则可以解决此问题。