我们用JAVA把SVG图片转成PNG图片,一般用的是Batik1.7里的 Transcoder来做转换,转换代码如下:
public static void convertSvgToPng(InputStream in, FileOutputStream fos) {
try {
PNGTranscoder t = new PNGTranscoder();
TranscoderInput input = new TranscoderInput(in);
TranscoderOutput output = new TranscoderOutput(fos);
t.transcode(input, output);
fos.flush();
fos.close();
} catch (IOException ex) {
Logger.getLogger(CreateFile.class.getName()).log(Level.SEVERE, null, ex);
} catch (TranscoderException ex) {
Logger.getLogger(CreateFile.class.getName()).log(Level.SEVERE, null, ex);
}
}
一般用这种方式没什么问题。不过对于有些特殊格式的SVG,就有可能转不了。我这次就碰见这个情况,报错内容如下:
org.apache.batik.bridge.BridgeException: null:-1
The URI "#Unnamed_Pattern"
specified on the element is invalidat
org.apache.batik.bridge.SVGPatternElementBridge.extractPatternContent(SVGPatternElementBridge.java:260)
at org.apache.batik.bridge.SVGPatternElementBridge.createPaint(SVGPatternElementBridge.java:86)
at org.apache.batik.bridge.PaintServer.convertURIPaint(PaintServer.java:359)
at org.apa