小弟我新近接到开发任务,要求开发一个转换工具,将TTF文件(不一定是汉字TTF文件)中所有的文字提取出来,逐一转换指定大小的BMP图像文件。我已经知道可以利用FreeType2开源代码来进行解码,但是小弟我原来没有接触过它,看过它的必读文档后也是一头雾水。如果那位同行以前做过,能够提供一些关键代码或思路,小弟我不甚感激!

解决方案 »

  1.   


        TTF在从字库中分析CMAP等段后,提取了GLYPH,然后会根据GLYPH作图和填充;
        作图是根据关键点画直线和贝塞尔曲线,然后是光栅填充(记得好像是),此时,你可以将填充后的字模提取并缩小保存(字模一般是2048x2048);
        不建议这样作;
        建议使用GetGlyphOutline等API获取信息,保存,工作量将会很小;
      

  2.   

    利用GetGlyphOutline我已经考虑过,对于中文TTF文字确实够用
    不过,文字编码是未知的,操作系统也不一定支持TTF中的文字,比如韩文,法文等
    我首先要获取TTF文件中的所有文字编码,然后才能再利用FreeType提供函数进行图形装载和BMP转换
    我现在有一些思路了,欢迎大家继续讨论
      

  3.   

    通过对FreeType2的深入理解,我需要解决的两个核心问题基本解决:
    1.从TTF中获取文字的编码;
    2.将编码转换为对应的BMP图像数据。
    FreeType2中均提供了函数支持。
    我现在得出的结论是,利用FreeType2远远比GetGlyphOutline等函数灵活有效。
    欢迎有兴趣或从事类似任务的同行继续讨论
      

  4.   

    我现在已经能够使用FreeType2生成指定大小的字体BMP文件了
    不过,我需要生成16×16,24×24点阵的1bit bmp文件,其中16×16的效果不能令人满意
    不知各位大虾有好的建议或算法不?非常感谢
      

  5.   

    建议是利用FreeType2生成所需要的数据,应该能够得到令人满意的效果的
    可能有些字体文件的效果不一定好,特别是小字体的时候
    楼主你只能慢慢地进行测试,也许能够得到好的效果
      

  6.   

    AddFontResource 
    GetFontUnicodeRanges
    GetGlyphOutline关于文字编码,对于Unicode 无所谓了