从位图字体图像中提取字形数据的工具

时间:2011-06-26 00:15:44

标签: python opengl fonts bitmap gimp

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以使用PIL来帮助您自动完成此过程。

假设 background 颜色中至少有一行/列分隔行/字符,您可以使用Image.crop方法检查每一行(然后检查行的每一列)如果它只包含背景颜色;因此你得到了每个角色的边界。

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