如何从字体中获取向量

时间:2013-01-25 10:08:39

标签: python vector fonts

我正在寻找一种从字符中获取矢量形式(点和曲线)的方法,类似于此SO question中描述的内容,但是在Python而不是java中。有人知道吗?

2 个答案:

答案 0 :(得分:3)

<强>更新

我刚刚为FreeType库找到了一个相当完整的Python包装器:

https://code.google.com/p/freetype-py/

它是基于ctypes的,而且级别相当低 - 但这些示例是捆绑在一起的 清楚地显示它是如何被使用的,包括获得的方式 以线和弧等描述的字形几何体。  FreeType本身可以处理任何问题 你需要的字体文件格式。

原始回答

我不知道Java问题上的人是否真的得到了他们想要的东西 - 但这绝对是非常重要的。

在Java中,字体呈现引擎本身可能在JVM中作为Java对象运行。这不是Python的哲学 - 像渲染到屏幕的低级别事物是在本机代码中执行的,而不是由解释器VM内部的Python对象执行的。

因此,在Java中,可以连接到执行字符实际渲染和从中提取数据的类,在Python中,它通过几层代码与实际代码分开。

这个差异解释了,你的问题没有足够的信息给你任何有意义的答案:什么样的字体文件?有几十种! :-)

您将在何种上下文中使用此字体路径信息?我的意思是 - 您将使用哪些库来呈现图形 - 或者您可能只是将数据转储到可读文件中? 这是相关的,因为根据您打算用来渲染图形的库,可能有使用该库生态系统(比如Qt,Cairo,pango,windows native,pygame等)访问角色信息的方法

也就是说,至少有一种字体文件格式可以很容易地获得您想要的信息: SVG字体其中点和曲线将表示为XML数据。

另外,你要看的另一件事是fontforge项目 - 它可以处理字体 - 几种格式 - 并且它可以用Python编写脚本。但这只是我所知道的。 (http://fontforge.org

答案 1 :(得分:-2)

在这个问题中,本质上是关于如何表示图形矢量。你可以开始看matplotlib和Pyplot。