如何在java

时间:2016-05-11 05:40:55

标签: java svg jpeg batik

我有一个 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();

1 个答案:

答案 0 :(得分:0)

我假设你正在使用蜡染1.8,因为以下步骤正在使用蜡染1.7但是失败了1.8。

  1. batik download mirrors
  2. 之一下载二进制发行版1.7
  3. 解压缩档案(将创建目录./batik-1.7.1/
  4. 保存batik transcoder example
  5. 中的示例SaveAsJPEG.java
  6. 编译它 javac -cp batik-1.7.1/batik.jar SaveAsJPEG.java
  7. 跑吧 java -cp batik.jar:. SaveAsJPEG foobar.svg
  8. 这将创建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)