1

是否可以使用 Graphviz [image] 标签嵌入数据 URI 字符串?IE

simple.dot:(应该显示一个红点图像 -> 节点 B)

digraph G {

rankdir="LR";
A -> B [label="test 1"];

A [image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="];
B [label="foo"];

}

运行这个

dot simple.dot -o simple.svg -Tsvg

这是我得到的错误

Warning: No such file or directory while opening data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
Warning: No or improper image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" for node "A"

生成的图形在节点 A 中不显示图像。

你知道如何解决这个问题吗?

谢谢!

4

1 回答 1

2

您可能必须修改 graphviz 的源以能够读取/写入数据 uri。大概它需要加载图像来获取尺寸。

另一种选择是不在点文件中使用数据 uri,而是对生成的 svg 进行后处理(如果您想要的是一个自包含的 svg 文件)。SVG Scour可能是轻松做到这一点的一种方法。Inkscape可能也可以为您做到这一点。

于 2011-12-15T15:46:46.547 回答