使用 MetaUML 和 metapost 提高图像分辨率

使用 MetaUML 和 metapost 提高图像分辨率

我正在使用 MetaUML 创建文本驱动的 UML 图。当我生成图形时,使用:

$ mpost example.mp
$ convert ps:example.1 png:example.png

生成的图像分辨率非常低。如果我使用 ImageMagick 的实用程序放大 PostScript 图像convert,它会变得模糊(显然是从低分辨率源数据中采样的)。此外,如果我更改defaultscaleMetaUML 源中的参数,所有文本的大小都会增加,但会与其他文本重叠。此外,如果 的值较大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。

相关内容