我目前正在处理一个损坏的TrueType字体。我可以使用的程序告诉我maxp表有一个问题-- maxContours成员的值太大。有没有一种万无一失的方法来检测maxContours值何时过高或过低(是的,这也可能是一个问题)?(字体是程序,所以检测字体文件的一种方法是执行它们,但这对我来说不是一个可接受的解决方案。)
我不需要一个字体库,因为我不能添加一个。我已经推出了自己的TrueType字体解析器。剩下的就是检查上面提到的表中的某个给定值是否不正确。然后,我将把解析器和检查添加到我的产品中。
我没有重建字体的选项。我是一个消费者--我需要检测传入的字体是否损坏,以及它是否在尽可能少的工作情况下被保释。
如果有用的话--我使用的是Windows XP/Vista ( 32位和64位)及其服务器版本!
发布于 2009-03-05 17:16:26
而不是试图检测错误,我发现最方便的方法是用FontForge重新构建麻烦字体。这可以完全自动化,因为它提供了丰富的命令行和脚本API。此外,如果需要,还可以将字体转换为更方便的格式或编码。
发布于 2009-03-05 17:09:20
您使用的是什么平台?我已经能够非常愉快地使用Python的FontTools库来破解TrueType文件:
font= fontTools.ttLib.TTFont("suspect.ttf")
font['maxp'].maxContoursETA re编辑:那么问题只是“maxContours的什么值太低/太高”?据我所知,没有文档限制,但我知道在maxContours中“添加一些”是很常见的,以防字形包含的轮廓比它所表示的更多。
(这个麻烦的字体中的maxContours是什么,它与字形中实际使用的轮廓数量有什么关系?)
https://stackoverflow.com/questions/615479
复制相似问题