Обтравка «буфером» вокруг текста в Postscript - PullRequest
0 голосов
/ 29 мая 2018

(Это приближается к к этому вопросу под другим углом.)

Я рисую карты.Их можно рассматривать как имеющие три слоя: внизу присутствуют сплошные цвета, представляющие такие вещи, как лес и вода, и низкоконтрастные линии для таких вещей, как «ореолы» на дорогах, указывающие на классификацию.Затем идет высококонтрастная линия, такая как черные линии, представляющие центральные линии дороги, и черные пунктирные линии, представляющие пути.Наконец, есть метки, обычно черные.

Я хотел бы, чтобы черные линии имели пропуски вокруг текста, где цвета и линии нижнего слоя просвечивают.

В SVG этоэто можно сделать, установив маску на линиях и нарисовав текст с очень широким штрихом (чтобы создать зазор) в этой маске.

Есть ли способ выразить это в Postscript, если не считать моего собственногосредство визуализации шрифтов для отображения «буферизованного» текста как путей Безье?Я могу создать маску клипа, которая подходит прямо к краю текста, нарисовав прямоугольник вокруг страницы, набрав charpath: текст, а затем выполнив eoclip, но как мне получить буфер?

1 Ответ

0 голосов
/ 29 мая 2018

PostScrtipt не имеет никакой концепции прозрачности (по модулю определенных особых случаев, таких как наложение, маски изображений и изображения с цветными ключами).Для программы PostScript также не существует стандартного способа повлиять на все, что уже было отрендерено, кроме рисования поверх него.

Вы не можете «получить буфер», если под этим подразумевается вернуть пиксели обратноиз буфера страницы, чтобы создать свой собственный композитинг.

Единственный способ увидеть то, что вы хотите, - это нарисовать черные линии с уже имеющимися пробелами.Очевидно, что это означает, что вы должны извлекать интеллектуальную информацию из PostScript и помещать ее в свое собственное приложение. При рисовании черных линий вы должны знать, где будет находиться текст, чтобы вы могли оставлять пропуски в линиях в соответствующих местах.

...