首先看“画汉字”的函数:(具有一定的通用性)
//画汉字 void DemoHZ(unsigned char *buf, int x, int y, int color) { int i; int j; int k; //下面是使用【字模3】软件生成的数据 // 第一、二个字节为“像素高和宽“,这里假设高和宽一样 // 第三个字节为“宽的字节数” int nWidth = buf[0]; int nBytesPerRow = buf[2]; //开始写汉字 buf +=3; for(i=0; i<nWidth; i++) { for(j=0; j<nBytesPerRow; j++) { for(k=0;k<8;k++) if(((buf[nBytesPerRow*i+j]>>(7-k))&0x1)!=NULL) putPixel(x+8*j+k, y+i, color); } } }
上面用到了【字模III】工具,破解版的在这里下载:http://download.csdn.net/detail/dijkstar/6239435,putPixel是一个“画点”函数,最后介绍。
比如使用字模工具产生一个汉字“设”字,43*43像素,多大的像素及字体,你自己可以在字模工具里设,
unsigned char Bmp001[]= { /*------------------------------------------------------------------------------ ; 若数据乱码,请检查字模格式设置,注意选择正确的取模方向和字节位顺序。 ; 源文件 / 文字 : 设 ; 宽×高(像素): 43×43 ; 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/258字节 ; 数据转换日期 : 2013-9-2 17:55:19 ------------------------------------------------------------------------------*/ 0x2B,0x2B,0x06,//宽的像素数,高的像素数,宽的字节数,参数设置可选 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x00,0x00,0x03,0x80,0x00,0x07,0x00,0x00,0x03,0x80,0x00,0x07,0x80,0x00,0x03, 0x80,0x00,0x07,0x80,0x00,0x03,0x80,0x00,0x07,0x00,0x00,0x03,0x8C,0x00,0x0F,0x00, 0x00,0x03,0x8F,0x80,0x0F,0x00,0x00,0x03,0x8F,0xE0,0x0E,0x00,0x0F,0xFF,0x8F,0xF8, 0x1E,0x00,0x0F,0xFF,0x8D,0xFC,0x1E,0x00,0x0F,0xFF,0x0C,0x7F,0x3C,0x00,0x0E,0x00, 0x0C,0x1F,0xB8,0x00,0x0E,0x00,0x0C,0x07,0xF8,0x00,0x0E,0x00,0x0C,0x03,0xF0,0x00, 0x0E,0x00,0x0C,0x01,0xF0,0x00,0x0E,0x00,0x0C,0x03,0xF0,0x00,0x0E,0x00,0x0C,0x07, 0xF8,0x00,0x0E,0x00,0x0C,0x1F,0xBC,0x00,0x0F,0xF0,0x0C,0x7E,0x3C,0x00,0x0F,0xFC, 0x0F,0xFC,0x1E,0x00,0x0F,0xFF,0x0F,0xF0,0x1E,0x00,0x00,0xFF,0x8F,0xC0,0x0F,0x00, 0x00,0x0F,0xDF,0x00,0x0F,0x00,0x00,0x03,0xFC,0x00,0x07,0x00,0x00,0x01,0xDC,0x00, 0x07,0x80,0x00,0x00,0x80,0x07,0x07,0x80,0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00, 0x00,0x07,0x82,0x00,0x01,0xC0,0x00,0x03,0xC0,0x00,0x03,0xE0,0x00,0x01,0xE0,0x00, 0x07,0xC1,0xFF,0xFF,0xF8,0x00,0x0F,0x81,0xFF,0xFF,0xFC,0x00,0x1F,0x01,0xFF,0xFF, 0xF8,0x00,0x0C,0x01,0xC0,0x00,0x10,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x01, 0xC0,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00, 0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00, };
那么,可以使用:DemoHZ(Bmp001, x, y, 15);,其中,x和y是显示的位置,最后一个15是颜色。
在DOS下,BC++、Turbo C的打点函数为:putpixel;
在Windows下,VC的打点函数为:CDC::SetPixel;
在vxWorks下,WindML的打点函数为:uglPixelSet