字符画转换关键技术
第一个关键技术:汉字库读取技术
使用汉字库技术可以做到和操作系统无关性,先了解一下点阵字库的基本原理。如下所示,下面是一个“字”的点阵图,在16点阵字库中一个汉字为16x16点,每一行使用两个字节表示,如下面示例第一行的十六进制为:0x02和0x00,所以,一个汉字在16点阵字库中需要占用2x16个字节,24点阵字库需要3x24个字节,下面仅以16点阵字库为例,其他点阵类似。
第二个关键技术:使用系统字库进行转换
其实使用系统字库是极为自由的方式,因为这样完全不必关心字库的技术,这一切都交给系统好了,充分利用系统资源。
如果定义一个设备,然后设定好设备的各种属性,包括宽度、高度、字体、颜色等,然后在上面绘制文本就可以了,要转换为字符画,只需要把设备上的点阵信息转换为文本即可。配合CreateFontIndirect函数,使用DrawText可以绘制丰富的文本效果。
第三个关键技术:图片转换为文本
要把图像转换为文本,这其中有一个很大的困难,就是文本没有颜色,所以特别引进了一个概念:文本灰度,就是把不同字母在屏幕上显示的大小排序,得到一张灰度表,用这个灰度表来转换图片,可以达到比较好的效果。
第四个关键技术:把文本转换为图像
要把文本转换为图片,必须获取两个重要参数:转换后的宽和高,要取得这两个参数,我们可以使用GetTextExtentPoint32函数。