将点文件(graphviz)转换为图像时如何设置分辨率?

Posted

技术标签:

【中文标题】将点文件(graphviz)转换为图像时如何设置分辨率?【英文标题】:How do I set the resolution when converting dot files (graphviz) to images? 【发布时间】:2010-11-20 04:25:54 【问题描述】:

我试过了

$ dot -Tpng rel_graph.gv > rel_graph.png

但生成的图像质量非常低。

【问题讨论】:

【参考方案1】:

dot -Tpng -Gdpi=300 foo.gv > foo110percent.png

使用选项 -Gdpi。

您可以找到更多信息here。

【讨论】:

dot -Tpng -Gdpi=300 foo.gv -o foo110percent.png 注意:您可以通过更改 -o 指定的文件名的扩展名来更改输出格式,请参阅:graphviz.org/doc/info/output.html【参考方案2】:

我发现 GraphViz 绘制的图形不错,但分辨率往往相当低,您可以尝试输出到 SVG,然后使用其他图像包适当缩放图像,然后保存为基于像素的格式,如 PNG。这可能会为您提供更好的分辨率,但我从未亲自尝试过,我倾向于主要只创建 SVG 文件,然后可以使用浏览器查看。

只需将 -T 参数更改为 -Tsvg

dot -Tsvg rel_graph.gv > rel_graph.svg

Dot Guide http://www.graphviz.org/pdf/dotguide.pdf 中有一些关于图形缩放的内容,但不清楚这如何影响分辨率,您也可以尝试这些设置,看看是否可以改善。

【讨论】:

将 SVG 数据保存到 *.png 文件对我来说似乎是一个的想法…… @MvG Dumb 拼写错误,我想我是从 OP 问题中复制粘贴的,并没有将 png 完整更改为 svg 更改【参考方案3】:

使用 dpi 属性。

例子:

graph G  
  graph [ dpi = 300 ]; 
  /* The rest of your graph here. */ 

【讨论】:

这种方法的不利方面是绝对不会产生抗锯齿。使用低分辨率(例如 72 dpi),您的输出图像看起来会很“点” @yegor256 也许随着时间的推移它们发生了变化,我在 72 dpi 和 300 dpi 上都看到了抗锯齿。 @einpoklum 是的 命令行上等价的-Gdpi=300在某些情况下也很有用。

以上是关于将点文件(graphviz)转换为图像时如何设置分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

将点转换为矢量线的算法。 (光栅到矢量)

如何将文本文件自动转换为 graphviz dot 文件?

Graphviz:如何从 .dot 变为图形?

如何在 Graphviz 中设置输出图像的宽度和高度

在 warpAffine 转换后如何将点重新映射或恢复到其以前的坐标系?

将视频转换为单张图片(灰度)【MATLAB】