我有一些文本,将处理生成一个UML序列图像。我可以使用Python或Perl处理文本,将其转换为现有的“文本到UML”工具的格式,但我试图消除这个额外的步骤,并直接从Python / Perl脚本中输出图像。
是否有任何可以使用的Python或Perl软件包/模块?
是否有任何可以使用的Python或Perl软件包/模块?
有许多Python的替代品。
如果你想从头开始生成图像,你可以考虑使用PIL(Python Imaging Library),这是Python的“事实上”的图像库。
然而,特别是对于序列图,blockdiag图像生成库(也使用PIL)包括一个名为seqdiag的序列图生成器。例如,以下是如何定义和生成一个简单但完整的序列图,包括图表定义:
from seqdiag import parser, builder, drawer
diagram_definition = u"""
seqdiag {
browser -> webserver [label = "GET /index.html"];
browser <- webserver;
}
"""
tree = parser.parse_string(diagram_definition)
diagram = builder.ScreenNodeBuilder.build(tree)
draw = drawer.DiagramDraw('PNG', diagram, filename="diagram.png")
draw.draw()
draw.save()
请查看http://blockdiag.com/en/seqdiag/examples.html以获取更多示例(序列)图定义和样式选项。
有几个Perl模块可以实现这个功能,请参见UML::State。
从概述中看:
use UML::State;
my $diagram = UML::State->new(
$node_array,
$start_list,
$accept_list,
$edges
);
# You may change these defaults (doing so may even work):
$UML::State::ROW_SPACING = 75; # all numbers are in pixels
$UML::State::LEFT_MARGIN = 20;
$UML::State::WIDTH = 800;
$UML::State::HEIGHT = 800;
print $diagram->draw();
CPAN是你的好朋友。:)
blockdiag
。我已经向讨论组询问了seqdiag
。让我们看看他们会说什么,谢谢。 - none