我有一个 MulipartFile 对象,它会篡改SVG图像。我想将其转换为 JPEG格式。我怎样才能做到这一点?我尝试了以下操作,但是因为系统找不到指定的文件而得到一个Enclosed Exception。
JPEGTranscoder t = new JPEGTranscoder();
File f = new File("temp.svg");
multipartfile.transferTo(f);
// Create a JPEG transcoder
// Set the transcoding hints.
t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
new Float(.8));
// Create the transcoder input.
String svgURI = f.toURL().toString();
TranscoderInput input = new TranscoderInput(svgURI);
// Create the transcoder output.
OutputStream ostream = new FileOutputStream("out.jpg");
TranscoderOutput output = new TranscoderOutput(ostream);
// Save the image.
t.transcode(input, output);
// Flush and close the stream.
ostream.flush();
ostream.close();
答案 0 :(得分:0)
我假设你正在使用蜡染1.8,因为以下步骤正在使用蜡染1.7但是失败了1.8。
./batik-1.7.1/
SaveAsJPEG.java
javac -cp batik-1.7.1/batik.jar SaveAsJPEG.java
java -cp batik.jar:. SaveAsJPEG foobar.svg
这将创建out.jpg
。
使用与1.8版相同的步骤进入
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)