将“点”生成的图形复制到剪贴板(例如 png)

将“点”生成的图形复制到剪贴板(例如 png)

我经常发现自己想要快速制作一个图表来说明依赖关系或过程。 dot这样做很好,但是如果我可以将渲染的图表直接生成到剪贴板而不是生成临时文件,那会更方便。

理想情况下,我想要类似的东西

echo "graph {a--b; b--c;}" | dot -Tpng | xclip

该命令本身并不十分起作用 - 复制的数据不会粘贴到通常接受粘贴图像的应用程序中。

有没有什么技巧可以dot产生可粘贴到应用程序中的输出?

顺便说一句,也许是为了解决我的问题根源的知识差距,是什么让图像“可粘贴”?上面的命令和在网络浏览器中右键单击图像并选择 有什么区别Copy Image

答案1

关闭。您需要告诉 xclip 数据的类型,并且大多数程序都需要XA_CLIPBOARD通常的 ctrl-v 粘贴:

echo "graph {a--b; b--c;}" | dot -Tpng | xclip -selection clipboard -t image/png

一个简单的 shell 函数可能是包装所有这些的好主意。

顺便说一句,如果你要粘贴到 inkscape 中(可能还在很多东西中,比如网页编辑器中),SVG 可能比 PNG 更好dot -Tsvg | xclip -selection clipboard -t image/svg

相关内容