2

我拥有以 PNG 呈现的字体的所有字符。我想在 OpenGL 中使用 PNG 进行纹理映射字体渲染,但我需要提取字形信息 - 字符位置和大小等。

是否有任何工具可以协助该过程?我看到的大多数工具都会同时生成图像文件和字形数据。我没有找到任何可以帮助我从现有图像中提取的东西。

我使用 gimp 作为我的主要图像编辑器,并且我考虑编写一个插件来帮助我识别每个字符的边界框。我知道 python,但之前没有做过任何 gimp 插件,所以那将是一件苦差事。我希望有些东西已经存在...

4

2 回答 2

1

通常,它的工作方式是使用工具来生成字形图像。该工具还将为这些字形生成度量信息(它们有多大等)。您不应该分析图像来查找字形;你应该在你的字形旁边有额外的信息,告诉他们在哪里,他们应该有多大,等等。

考虑字母“i”。根据字体的不同,它的左右两侧会有一些空间。即使您有一个可以识别字形“i”的工具,您也需要知道字体在字形的左侧和右侧放置了多少像素的空间。对于所有字母来说,这几乎是不可能准确地做到的。并非没有一些非常先进的计算机视觉算法。而且由于生成这些字形的工具已经知道它们应该获得多少间距,所以最好还是更改工具以编写字形信息。

于 2011-06-26T00:44:01.637 回答
0

您可以使用PIL来帮助您自动化该过程。

假设至少有一行/列背景色分隔线/字符,您可以使用该Image.crop方法检查每一行(然后是该行的每一列)是否仅包含背景色;因此你得到每个字符的边界。

如果您需要进一步的帮助,请 Ping。

于 2011-11-21T08:31:25.443 回答