一个字体库引起的坑

  前面在做开发的过程中需要将某个字体的转换成图片保存, 但是在将某gis的某一字体绘制成图片的时候,发现如何搞就是不成功,字体是这个字体: * Meteorological 01.自己用win32小程序尝试用freetype读取此字体,竟然读取不到charmap(编码和字体内的矢量图形映射表,通过编码可以找到特定的字符图元),找不到就找不到吧, 我用的默认unicode 映射表, 发现这个确实就是找不到,尝试用其他编码也是读取不到任何字符的,最后无奈请教公司大神,大神给了一工具 FontForgeBuilds,这个工具真乃字体编辑查看的神器,通过此工具打开了这个字体发现了字体格式编码还真是有问题,如图:

一个字体库引起的坑_第1张图片


这真是尴尬, Windows 原始API,是可以读取此字体,word ,,execl插入符号也可以读取到此字体,但是我这要开发跨平台组件, 显然不可能用特定平台api,这里不得不佩服windows,没得编码还能读出来,并且读取的编码还是名称里面显示的F021 --> 21 ,他能读取成21. 这个可能他自己解析字体遍历读取的吧,  这个猜想我通过 直接给Freetype api给F021 是可以读取出来字体保存图片就可以知道了.  由于此字体没有Unicode 编码,所以临时想的解决方案就是把此字体的unicode编码按他给的名称添加上,具体做法:

1:FontForgeBuilds 新键一个字体库

2:将原有没有编码的字体整体复制到新的字体库上;

3:菜单 File->generate fonts  就会生成一个经过编码过的字体.

你可能感兴趣的:(C++札记)