请问有什么软件可以生成由文本组成的图形吗?


#1

比如下面的图片,他是由graphviz生成的

se_thumb

有什么方法可以把他转换成,或直接生成如下的形式吗


            +-----------+
            |    h      |---+
            |           |   |
            +-----------+   |
                            |
                            |
                            |
         +----------+       |
         |          |       |
         |    c     |       |
         +----------+       |
                   ^        |
                   |        |
                   +--------+

要是能保留位置信息及其他属性就更好了


#2

R有个叫Magick的包,不知道是否满足你的需求?

是把已有图片转换成一堆字符,就像这样:


#3

找到了转换的代码

但生成的字符画有点大

关键的是不能识别图片中的文字

我需要图片中的文字信息


#4

好像还是分析graphviz生成的布局文件靠谱的吧


#5

你是有 graphviz 源文件吗?那当然从源文件下手比较靠谱。

如果只有图片,得找找有哪些 OCR 工具对图表支持比较好的。

单纯的图片转文本应该比较容易,可以考虑 png -> svg -> ascii,估计难的是文字识别,何况你提供的是 jpg,上面的噪点都会被视为有效信息。

Visio 有个辅助工具可以导入图片编辑,没用过不知道做到哪种程度 https://dmitryivanov.net/image-converter-for-visio/


#6

源文件是有的

直接生成字符画也可以 不一定要图片的

我要的是用程序自动生成 而不是用artist-mode手画


#7

Graphviz and ascii output - Stack Overflow: https://stackoverflow.com/questions/3211801/graphviz-and-ascii-output

#+NAME: dot
#+BEGIN_EXAMPLE
digraph G {
        h->c;
}
#+END_EXAMPLE

#+BEGIN_SRC sh :results raw replace output :var dot=dot
echo $dot | graph-easy --from=dot --as_ascii
#+END_SRC

#+RESULTS:
+---+
| h |
+---+
  |
  |
  v
+---+
| c |
+---+

#8

谢谢 方法可用

唯一的缺点就是没有dot原有的位置信息

不过 足够用了

再次感谢


#9

而且如果"graph-easy"处理的内容里有中文的话:

(shell-command-on-region "digraph G {拼->音;}" nil "graph-easy --as ascii")

还不能有效地对齐:

+---+
| 拼 |
+---+
  |
  |
  v
+---+
| 音 |
+---+