gpt4 book ai didi

svg - Apache Batik 没有可用的 WriteAdapter?

转载 作者:行者123 更新时间:2023-12-01 18:12:10 63 4
gpt4 key购买 nike

我正在编写代码将 SVG 转换为 PNG:

package com.example;

import java.io.*;
import java.nio.file.Paths;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.apache.batik.transcoder.SVGAbstractTranscoder;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;

public class Main {

public static void main(String [] args) throws Exception {

// read the input SVG document into TranscoderInput
String svgURI = Paths.get(args[0]).toUri().toURL().toString();
TranscoderInput input = new TranscoderInput(svgURI);
// define OutputStream to PNG Image and attach to TranscoderOutput
OutputStream ostream = new FileOutputStream("out.png");
TranscoderOutput output = new TranscoderOutput(ostream);
// create a JPEG transcoder
PNGTranscoder t = new PNGTranscoder();
// set the transcoding hints
t.addTranscodingHint(SVGAbstractTranscoder.KEY_HEIGHT, new Float(600));
t.addTranscodingHint(SVGAbstractTranscoder.KEY_WIDTH, new Float(600));
// convert and write output
t.transcode(input, output);
// flush and close the stream then exit
ostream.flush();
ostream.close();
}
}

使用各种 SVG 执行它时出现以下异常:

Exception in thread "main" org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
Could not write PNG file because no WriteAdapter is availble
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:132)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
at com.example.Main.main(Main.java:26)

batik 版本(Maven 报告):

version=1.9
groupId=org.apache.xmlgraphics
artifactId=batik-transcoder

我在 Batik 1.7 中遇到了同样的错误。

建议?

最佳答案

Peter Coppens 在 xmlgraphics-batik-users 邮件列表上解决了该问题。问题是 Batik 1.9 的 Maven 存储库缺少依赖项,可以通过添加到 pom.xml 来解决:

<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.9</version>
</dependency>

添加此内容后,神秘异常消失,代码按预期运行。这被报告为 Batk 1.7 的错误 ( https://bz.apache.org/bugzilla/show_bug.cgi?id=44682 )。

关于svg - Apache Batik 没有可用的 WriteAdapter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45239099/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com