【问题标题】:How convert SVG to JPEG in java如何在 Java 中将 SVG 转换为 JPEG
【发布时间】:2016-09-06 08:09:29
【问题描述】:

我有一个带有 SVG 图像的 MulipartFile 对象。我想把它转换成 JPEG 格式。我怎样才能做到这一点?我尝试了以下方法,但由于系统找不到指定的文件而出现封闭异常。

        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();

【问题讨论】:

标签: java svg jpeg batik


【解决方案1】:

我假设您使用的是 batik 1.8,因为以下步骤适用于 batik 1.7,但使用 1.8 失败。

  1. batik download mirrors 之一下载二进制分发版本 1.7
  2. 解压存档(将创建目录./batik-1.7.1/
  3. batik transcoder example 保存示例SaveAsJPEG.java
  4. 编译它
    javac -cp batik-1.7.1/batik.jar SaveAsJPEG.java
  5. 运行它
    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)

【讨论】:

  • 你用的是哪个java版本??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 2011-09-09
  • 2019-08-08
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多