postscript - 在 Postscript 中的文本周围使用“缓冲区”进行剪辑
问题描述
(这是从另一个角度接近这个问题。)
我在画地图。这些可以被视为具有三层:在底部,有代表森林和水等事物的纯色,以及用于指示分类的道路上的“光晕”等事物的低对比度线条。然后是高对比度的线条,例如代表道路中心线的黑线和代表路径的黑色虚线。最后,还有标签,通常是黑色的。
我希望黑线在文本周围有间隙,底层的颜色和线条会透过这些间隙。
在 SVG 中,这可以通过在线条上设置遮罩并将具有非常宽的笔划(以创建间隙)的文本绘制到此遮罩中来完成。
有没有办法在 Postscript 中表达这一点,而不是编写我自己的字体渲染器来将“缓冲”文本渲染为贝塞尔路径?我可以通过在页面周围绘制一个矩形,charpath:ing 文本然后执行 eoclip,创建一个一直到文本边缘的剪辑蒙版,但是我如何获取缓冲区?
解决方案
PostScript 没有任何透明度的概念(以某些特殊情况为模,例如套印、图像蒙版和色度键控图像)。PostScript 程序也没有标准的方法来影响已经渲染的任何东西,除了通过绘制它。
如果您的意思是从页面缓冲区中取回像素以进行自己的合成,则无法“获取缓冲区”。
我能看到做你想要做的唯一方法是画黑线,间隙已经到位。显然,这意味着将智能从 PostScript 中移出并将其放入您自己的应用程序中,您需要知道,当您绘制黑线时,文本将在哪里,以便您可以在适当的位置在线条中留出空隙。
推荐阅读
- scala - 奇怪的 scala 错误。找到:scala.Double 需要 Double
- c# - 如何在 Selenium 中选择多个元素(不是
- node.js - 添加 mobx 商店时未定义窗口(服务器端渲染)
- node.js - react 原生实时聊天
- javascript - 使用 addEventListener 交换整个 html 文档
- python - Django 2.1:如何重置密码()
- javascript - amcharts 4 - 以前的版本 3 用户有一些麻烦
- xml - Microsoft Word (OOXML/DOCX) 文档格式验证
- android - 使用edittext的IP地址验证器
- matlab - 根据索引向量切片数据向量