2015-05-11 87 views
-1

由于我的无知,我使用BitFontCreator为unicode字符创建了可爱的字体。我计划将它用于在WinApi上输出的文本。经过长时间的生产,我发现它只能导出.c,.bin和.bmp文件。但是,这些不是WinApi的字体文件可用,我不得不使用PutPixel函数,但它输出速度太慢!我应该做些什么?我想出了一个解决方案:将.c或.bmp改为.ttf,但是如何?(有没有其他方法?)谢谢。如何将.c或.bmp更改为.ttf

回答

1

你一般不能,bitfontcreator是一个位图字体制作工具,它实际上只是一个与“字体”无关的位图绘图,直到将图像加载到可将其切片为有意义的“字母在x/y/w/h值处找到'W':....“。

另一方面(其中TTF是两种内部风味之一)的OpenType字体是矢量轮廓真正的字体格式(因为它具有权威和详尽的规范),并且是非常复杂的个软件存在=)

什么你可以做的是导入每个字母到程序中导入位图的信,像HighLogic的FontCreator时,可以做载体抽象,所以你最终的矢量近似您位图。然后,您将花费相当多的时间来修复抽象错误,但至少在此之后您将拥有真正的现代字体。

1

无需将您的像素数据转换为“真实”字体。 PutPixel非常慢,不应该用于这样的目的。

中途解决方案是将每个字符放入一个位图中,然后绘制这些字符。

完整而快速的解决方案是在位图中抓取窗口,将字符绘制到其中,并在窗口中再次绘制修改的位图。这可以通过完整的窗口来完成(如果您需要完全重新绘制所有文本)或使用更细粒度的细粒度,例如一次一行。