如何利用FreeType2开源代码从TTF中提取文字转换为BMP文件 小弟我新近接到开发任务,要求开发一个转换工具,将TTF文件(不一定是汉字TTF文件)中所有的文字提取出来,逐一转换指定大小的BMP图像文件。我已经知道可以利用FreeType2开源代码来进行解码,但是小弟我原来没有接触过它,看过它的必读文档后也是一头雾水。如果那位同行以前做过,能够提供一些关键代码或思路,小弟我不甚感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TTF在从字库中分析CMAP等段后,提取了GLYPH,然后会根据GLYPH作图和填充; 作图是根据关键点画直线和贝塞尔曲线,然后是光栅填充(记得好像是),此时,你可以将填充后的字模提取并缩小保存(字模一般是2048x2048); 不建议这样作; 建议使用GetGlyphOutline等API获取信息,保存,工作量将会很小; 利用GetGlyphOutline我已经考虑过,对于中文TTF文字确实够用不过,文字编码是未知的,操作系统也不一定支持TTF中的文字,比如韩文,法文等我首先要获取TTF文件中的所有文字编码,然后才能再利用FreeType提供函数进行图形装载和BMP转换我现在有一些思路了,欢迎大家继续讨论 通过对FreeType2的深入理解,我需要解决的两个核心问题基本解决:1.从TTF中获取文字的编码;2.将编码转换为对应的BMP图像数据。FreeType2中均提供了函数支持。我现在得出的结论是,利用FreeType2远远比GetGlyphOutline等函数灵活有效。欢迎有兴趣或从事类似任务的同行继续讨论 我现在已经能够使用FreeType2生成指定大小的字体BMP文件了不过,我需要生成16×16,24×24点阵的1bit bmp文件,其中16×16的效果不能令人满意不知各位大虾有好的建议或算法不?非常感谢 建议是利用FreeType2生成所需要的数据,应该能够得到令人满意的效果的可能有些字体文件的效果不一定好,特别是小字体的时候楼主你只能慢慢地进行测试,也许能够得到好的效果 AddFontResource GetFontUnicodeRangesGetGlyphOutline关于文字编码,对于Unicode 无所谓了 如何在线查msdn 如何隐藏程序在任务管理器中的信息? 虚函数 想问问:用VC的MFC编程,多文档,在显示所画的图形时,如果屏幕不够大,怎么样才能使在显示时自动加上左右滚动条?(在View.cpp中实现画 如何编程实现改变windows的分辨率和颜色数? 线程调度问题,在线等待 如何设置共享目录? 一个关于控制台的问题。。。。 findwindow函数的疑问 为什么我的列表中的滚动条,必须双击才能滚动? 怎么不显示richedit编辑框 告急:如何在vc中使用sendmessage发送消息调用vb中的image控件
TTF在从字库中分析CMAP等段后,提取了GLYPH,然后会根据GLYPH作图和填充;
作图是根据关键点画直线和贝塞尔曲线,然后是光栅填充(记得好像是),此时,你可以将填充后的字模提取并缩小保存(字模一般是2048x2048);
不建议这样作;
建议使用GetGlyphOutline等API获取信息,保存,工作量将会很小;
不过,文字编码是未知的,操作系统也不一定支持TTF中的文字,比如韩文,法文等
我首先要获取TTF文件中的所有文字编码,然后才能再利用FreeType提供函数进行图形装载和BMP转换
我现在有一些思路了,欢迎大家继续讨论
1.从TTF中获取文字的编码;
2.将编码转换为对应的BMP图像数据。
FreeType2中均提供了函数支持。
我现在得出的结论是,利用FreeType2远远比GetGlyphOutline等函数灵活有效。
欢迎有兴趣或从事类似任务的同行继续讨论
不过,我需要生成16×16,24×24点阵的1bit bmp文件,其中16×16的效果不能令人满意
不知各位大虾有好的建议或算法不?非常感谢
可能有些字体文件的效果不一定好,特别是小字体的时候
楼主你只能慢慢地进行测试,也许能够得到好的效果
GetFontUnicodeRanges
GetGlyphOutline关于文字编码,对于Unicode 无所谓了