代码之家  ›  专栏  ›  技术社区  ›  Ture Pålsson

在PostScript中的文本周围使用“缓冲区”进行剪切

  •  0
  • Ture Pålsson  · 技术社区  · 6 年前

    (这就要到了 this question 从另一个角度。)

    我在画地图。这些可以被视为有三层:在底部,有代表森林和水等事物的纯色,在指示分类的道路上有低对比度线条,如__halos_157;。然后是高对比度线条,例如代表道路中心线的黑色线条和代表道路的黑色虚线。最后,还有标签,通常是黑色的。

    我希望黑色的线条在文本周围有间隙,底层的颜色和线条在其中闪耀。

    在SVG中,可以通过在线条上设置一个遮罩,并在该遮罩中用非常宽的笔画出文本(以创建间隙)。

    有没有一种方法可以用PostScript来表达这一点,除了编写自己的字体渲染器以将缓冲文本呈现为bzier路径之外?我可以通过在页面周围绘制一个矩形,charpath:ing文本,然后执行eoclip,来创建一个直接到达文本边缘的剪辑蒙版,但是如何获得缓冲区呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   KenS    6 年前

    PostCrTipt没有透明性的概念(对某些特殊情况进行调制,如套印、图像蒙版和色度键控图像)。PostScript程序也没有标准的方法来影响已经呈现的任何内容,除了通过绘制它。

    如果您的意思是从页面缓冲区中取回像素,以便进行自己的合成,那么就不能“获取缓冲区”。

    我能看到的唯一的方法就是画一条黑线,上面已经有了间隙。显然,这意味着将智能从PostScript中移出,并将其放入自己的应用程序中,您需要知道,当您绘制黑线时,文本将在何处,以便您可以在适当的位置留下行间距。