首页 > 解决方案 > 在 Postscript 中的文本周围使用“缓冲区”进行剪辑

问题描述

(这是从另一个角度接近这个问题。)

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

我希望黑线在文本周围有间隙,底层的颜色和线条会透过这些间隙。

在 SVG 中,这可以通过在线条上设置遮罩并将具有非常宽的笔划(以创建间隙)的文本绘制到此遮罩中来完成。

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

标签: postscriptclipping

解决方案


PostScript 没有任何透明度的概念(以某些特殊情况为模,例如套印、图像蒙版和色度键控图像)。PostScript 程序也没有标准的方法来影响已经渲染的任何东西,除了通过绘制它。

如果您的意思是从页面缓冲区中取回像素以进行自己的合成,则无法“获取缓冲区”。

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


推荐阅读