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

时间:2018-05-29 06:13:35

标签: postscript clipping

(这是从另一个角度接近this question。)

我正在绘制地图。这些可以被视为具有三层:在底部,有代表森林和水的东西的纯色,以及用于道路上的“晕圈”表示分类的低对比度线条。然后是高对比度线条,例如代表道路中心线的黑线和代表路径的黑色虚线。最后,有标签,通常是黑色。

我希望黑色线条在文字周围留有空隙,底层的颜色和线条会透过它们。

在SVG中,可以通过在线上设置蒙版并使用非常宽的笔划(以创建间隙)将文本绘制到此蒙版中来完成此操作。

有没有办法在Postscript中表达这个,没有编写我自己的字体渲染器来将“缓冲”文本渲染为bézier路径?我可以通过在页面周围绘制一个矩形来创建一个直到文本边缘的剪辑蒙版,charpath:文本然后执行eoclip,但是如何获取缓冲区?

1 个答案:

答案 0 :(得分:1)

PostScrtipt没有任何透明度的概念(模糊某些特殊情况,如叠印,图像掩模和色度键控图像)。除了通过绘制它之外,PostScript程序也没有标准的方式来影响已经渲染的任何东西。

你不能'获取缓冲区',如果你的意思是从页面缓冲区中取回像素以进行自己的合成。

我能看到你想做的事情的唯一方法是绘制已经存在间隙的黑线。显然,这意味着将智能移出PostScript并将其放入您自己的应用程序中,当您绘制黑色线条时,您需要知道文本的位置,以便您可以在适当的位置留下空白。< / p>