我以TTF格式从dafont存储库中搜集了10个像素高的位图字体。但是,我无法从中提取实际的位图数据,因为它们看起来像是矢量图形,在绘制时我无法弄清楚点的大小和像素大小之间的对应关系。我需要软件工具,库或方法的建议,以获得与字母表单相对应的准确的每像素位图数据。如何从TTF位图字体中为POV显示提取位图数据?
一个例子字体,这使得该问题的意义是http://www.dafont.com/commodore-64-pixelized.font
我的目标是使用这些位图字体的一个或多个来控制基于Arduino的持久性视觉(POV)显示作为http://shrimping.it项目的一部分。
当设备左右移动时,POV设备使用一排LED指示灯通过闪烁LED打开和关闭文字。一个众所周知的例子是Adafruit的MiniPOV http://www.ladyada.net/make/minipov3/
要编写微控制器代码来闪烁LED,我需要从字体中获取逐像素信息,换句话说,我需要一个方案从数据中提取数据我已经提供了TTF格式的文件,以避免必须手动为每个字符和每种字体进行操作。
到目前为止,我一直在尝试Processing(http://processing.org),但我看不到如何选择点大小来呈现TTF,以便字体以完全匹配到底层的像素网格。一旦我有了这个,我可以得到这些信息,但我似乎无法达到目标。 Processing处理的textAscent和textDescent值似乎是垃圾,至少是我尝试过的字体。
我正在测试的字体是Advocut,Andina,Aux DotBitC,BM管,Commodore 64 Pixelised,Homespun BRK,Nayupixel,SG05和Visitor。如果您需要查看原始数据以更好地理解问题,则可以通过在dafont.com上搜索这些文件来自行检索这些文件。
感谢https://twitter.com/mgdm/status/259669824769245184和https://twitter.com/gordonjcp/status/259664637342142464他们通过Twitter提出的建议。什么也没有通过Stackoverflow :( – user336590
Andina字体似乎是不可用的当前形式使用这种解决方法,因为字母之间的间距变化并且通常不是整数像素(例如,?和N字符具有部分像素间距)。 – user336590
Nayupixel字体与间距有类似的问题,但它并没有那么糟糕,只需通过独立于垂直方向拉伸水平,然后使用Gimp的图像>模式>索引> 1位颜色将其平铺为位图即可恢复。 – user336590