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

2 投票
2 回答
1907 浏览
提问于 2025-04-16 20:17

我有一个字体的所有字符都做成了PNG格式的图片。我想在OpenGL中使用这个PNG来渲染带纹理的字体,但我需要提取一些信息,比如每个字符的位置和大小等等。

有没有什么工具可以帮助我完成这个过程?我看到的大多数工具都是把图片文件和字符数据一起生成的。我还没有找到可以帮助我从现有图片中提取这些信息的工具。

我主要使用gimp作为我的图片编辑器,我考虑过写一个插件来帮助我识别每个字符的边界框。我会一些python,但之前没有做过gimp插件,所以这对我来说会比较麻烦。我希望能找到一些现成的工具...

2 个回答

0

你可以使用 PIL 来帮助你自动化这个过程。

假设每个字符之间都有至少一行或一列的 背景 颜色来分隔,那么你可以用 Image.crop 方法来检查每一行(然后再检查这一行中的每一列),看看它们是否只包含 背景 颜色;这样你就能找到每个字符的边界了。

如果你需要进一步的帮助,随时联系我。

1

一般来说,这个过程是使用一个工具来生成字形图像。这个工具还会生成一些关于这些字形的度量信息(比如它们的大小等等)。你不应该通过分析图像来找到字形;你应该有额外的信息来告诉你字形的位置、大小等。

以字母“i”为例。根据不同的字体,它的左右两边会有一些空白。即使你有一个工具可以识别字形“i”,你也需要知道字体在字形的左右各留了多少像素的空白。对于所有字母来说,准确做到这一点几乎是不可能的。除非使用一些非常先进的计算机视觉算法。而且,由于生成这些字形的工具已经知道它们应该有多少空白,所以你最好是更改这个工具,让它同时写出字形的信息。

撰写回答