现在的位置: 首页 > 综合 > 正文

使用PixelPut(打点函数)点阵显示汉字的程序小结

2013年06月18日 ⁄ 综合 ⁄ 共 2278字 ⁄ 字号 评论关闭

首先看“画汉字”的函数:(具有一定的通用性)

//画汉字
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

抱歉!评论已关闭.