我正在使用 MetaUML 创建文本驱动的 UML 图。当我生成图形时,使用:
$ mpost example.mp
$ convert ps:example.1 png:example.png
生成的图像分辨率非常低。如果我使用 ImageMagick 的实用程序放大 PostScript 图像convert
,它会变得模糊(显然是从低分辨率源数据中采样的)。此外,如果我更改defaultscale
MetaUML 源中的参数,所有文本的大小都会增加,但会与其他文本重叠。此外,如果 的值较大defaultscale
,文本将超出 UML 框。
这是我正在使用的完整 MetaUML 源代码:
prologues := 2; % needed to load font definitions
defaultscale := 1.0 % I tweaking this value doesn't do what I want
input metauml; % load the MetaUML library
beginfig(1);
Class.A("Object")()();
Class.B("Point") % class name
("#x:int", "#y:int") % attributes
("+set(x:int, y:int)", % operations
"+getX():int",
"+getY():int",
"-debug():void");
B.e = A.w + (-20, 0);
drawObjects(A, B);
link(inheritance)(B.e -- A.w);
endfig;
end
如何使管道(MetaUML -> Metapost -> 转换)产生更高分辨率的图像?
答案1
我宁愿将 Postscript 文件转换为 PDF,这样就不会丢失矢量信息。只有在别无选择的情况下才使用位图格式(例如 PNG)。
convert
您可以通过使用高参数运行来改善位图文件的结果-density
,也可以使用高-quality
:
convert -quality 90 -density 600 ps:example.1 png:example.png
这将创建一个 600dpi 的图像,而不是默认的 72dpi。