如何解析 EPS 以获得网格类数据?

Posted

技术标签:

【中文标题】如何解析 EPS 以获得网格类数据?【英文标题】:How to parse EPS to get a mesh-kind data? 【发布时间】:2012-05-23 09:59:51 【问题描述】:

我的目标是将 EPS 文件导入应用程序(语言为 C++)以创建 3D 对象。我正在寻找一些库/工具,它可以帮助我将 EPS 解析为基元列表(圆形、线条、路径等,如 SVG)甚至轮廓数组。我已经尝试过首先使用 pstoedit 和 uniconverter 工具将 EPS 转换为 SVG 的方法。但有时这两种工具都会在数据丢失的情况下进行错误的对话。所以我不能说这种方式是可以接受的。 有没有人有这方面的经验或有什么建议?

【问题讨论】:

【参考方案1】:

这是一个大项目。对于初学者,您需要一个 PostScript 解释器,除此之外别无选择,因为 EPS 几乎可以包含任何内容。

我建议您使用现有的解释器,而不是编写自己的解释器,事实上,我建议您使用 Ghostscript,因为它是我所知道的唯一 GPL PS 解释器。

您可以编写一个包含方法的 Ghostscript,只要从输入中解释相关操作,就会执行这些方法。有一个现有的(非常有限的、不完整的)SVG 输出设备可以帮助您入门。

如果您想要一个通用的解决方案,您将不得不处理许多不同类型的操作;例如 PostScript 没有圆形图元,它的曲线都是贝塞尔曲线,有不同种类的线连接。您将需要考虑如何处理图像和可能的文本(可能丢弃这些)和阴影模式。您至少必须了解可以使用的各种色彩空间,即使您不打算自己使用它们。

鉴于 PostScript 本质上是 2D,我真的不知道您将如何构建 3D 对象,但这是一个不同的问题。

【讨论】:

我即将了解Ghostscript的方式。我希望有一个更简单的解决方案。贝塞尔曲线对我有好处。 3D 对象将是一个拉伸的 2D 对象,所以这不是一个真正的问题。非常感谢您的回答,我想这就是我想要的。

以上是关于如何解析 EPS 以获得网格类数据?的主要内容,如果未能解决你的问题,请参考以下文章

UGUI源码解析——VertexHelper

如何解析字符串化的 JSON 字段并使用 react-admin 呈现结果

UGUI源码解析——VertexHelper

Matlab中的小eps图形大小

如何将查询的结果集转换为可以进一步解析以创建json的pojo类?

将 CSV 解析为数据网格 WinForms