急!怎么用C语言打印汉字字模
怎么用C语言打印汉字字模,比如‘中’每个点都用‘中’来打印,
一个示例程序你看看:
/*************** 点阵字模工具编程辅助效果示例 ***************/
/************************************************************************
该示例中的字模数组均由“点阵字模工具”生成,你可以用你自己需要的点阵信息来
替换示例中的字模信息,注意字模大小要一致,否则显示会出问题。
用WIN-TC的字模工具生成指定字模信息能给你提供方便的集成小型字库解决方案
************************************************************************/
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd=VGA,gm=VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "");
}
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{
int i, j, k, n;
n = (matsize - 1) / 8 + 1;
for(j = 0; j < matsize; j++)
for(i = 0; i < n; i++)
for(k = 0;k < 8; k++)
if(mat[j * n + i] & (0x80 >> k)) /*测试为1的位则显示*/
putpixel(x + i * 8 + k, y + j, color);
}
char yi12[]={
/* 以下是 '1' 的 12点阵宋体 字模,24 byte */
0x00,0x00,0x0C,0x00,0x1C,0x00,0x3C,0x00,
0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
0x0C,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,
};
char er12[]={
/* 以下是 '2' 的 12点阵宋体 字模,24 byte */
0x00,0x00,0x3E,0x00,0x63,0x00,0x03,0x00,
0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,
0x63,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
};
char dian12[]={
/* 以下是 '点' 的 12点阵宋体 字模,24 byte */
0x04,0x00,0x07,0xC0,0x04,0x00,0x04,0x00,
0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,
0x00,0x00,0x49,0x40,0xC9,0x20,0x00,0x00,
};
char zhen12[]={
/* 以下是 '阵' 的 12点阵宋体 字模,24 byte */
0xF2,0x00,0x9F,0xE0,0x92,0x00,0xA5,0x00,
0xA5,0x00,0x97,0xE0,0x91,0x00,0xB1,0x00,
0x8F,0xE0,0x81,0x00,0x81,0x00,0x00,0x00,
};
char song16[]={
/* 以下是 '宋' 的 16点阵宋体 字模,32 byte */
0x02,0x00,0x01,0x00,0x7F,0xFE,0x41,0x04,
0x81,0x08,0x01,0x00,0x7F,0xFC,0x03,0x80,
0x05,0x80,0x05,0x40,0x09,0x20,0x11,0x10,
0x21,0x0E,0x41,0x04,0x01,0x00,0x00,0x00,
};
char ti16[]={
/* 以下是 '体' 的 16点阵宋体 字模,32 byte */
0x10,0x40,0x18,0x40,0x10,0x40,0x20,0x40,
0x37,0xFC,0x60,0xC0,0xA0,0xE0,0x21,0x60,
0x21,0x50,0x22,0x48,0x24,0x4E,0x2B,0xF4,
0x20,0x40,0x20,0x40,0x20,0x40,0x00,0x00,
};
char zi24[]={
/* 以下是 '字' 的 24点阵隶书 字模,72 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x18,0x00,0x08,0x1C,0x10,
0x1F,0xFF,0xF0,0x18,0x00,0x30,0x18,0xFF,
0x10,0x09,0xC3,0x90,0x00,0x3C,0x00,0x00,
0x1C,0x00,0x3F,0xFF,0xFE,0x7E,0x0C,0xFE,
0x00,0x1C,0x04,0x00,0x1C,0x00,0x04,0x3C,
0x00,0x03,0xF8,0x00,0x00,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char mo24[]={
/* 以下是 '模' 的 24点阵楷体_GB2312 字模,72 byte */
0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x00,
0x30,0x03,0x0C,0x20,0x03,0x04,0x3C,0x02,
0x07,0xE0,0x02,0x1C,0x40,0x02,0x00,0x40,
0x03,0xC0,0x70,0x7E,0x1F,0x98,0x02,0x08,
0x10,0x06,0x0F,0x90,0x07,0x88,0x10,0x0A,
0xCB,0xE0,0x1A,0x05,0x00,0x12,0x01,0x1E,
0x22,0x0F,0xFE,0x42,0x32,0x80,0x02,0x02,
0x40,0x02,0x04,0x60,0x02,0x0C,0x30,0x02,
0x18,0x1C,0x02,0x20,0x0F,0x02,0x00,0x00,
};
char guan48[]={
/* 以下是 '灌' 的 48点阵黑体 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0xC0,0x38,0x00,
0x03,0x00,0x03,0xC0,0x38,0x00,0x07,0x80,
0x03,0xC0,0x38,0x00,0x07,0xC0,0x03,0xC0,
0x38,0x00,0x03,0xF1,0xFF,0xFF,0xFF,0xFC,
0x01,0xF9,0xFF,0xFF,0xFF,0xFC,0x00,0x79,
0xF1,0xC0,0x39,0xFC,0x00,0x30,0x01,0xC0,
0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xF0,0xFF,0xE0,0x00,0x00,0xFF,0xF0,
0xFF,0xE0,0x00,0x00,0xE0,0x70,0xE0,0xE0,
0x0E,0x00,0xE0,0x70,0xE0,0xE0,0x1F,0x80,
0xE0,0x70,0xE0,0xE0,0x1F,0xE0,0xFF,0xF0,
0xFF,0xE0,0x07,0xF0,0xFF,0xF0,0xFF,0xE0,
0x01,0xF0,0xFF,0xF1,0xFF,0xE0,0x00,0x60,
0x08,0x07,0x00,0x00,0x00,0x20,0x1E,0x03,
0x80,0x00,0x00,0x00,0x1E,0x03,0x00,0x00,
0x00,0x00,0x1F,0xFF,0xFF,0xF0,0x00,0x00,
0x3F,0xFF,0xFF,0xF0,0x00,0x00,0x3F,0xFF,
0xFF,0xF0,0x00,0x00,0x7C,0x03,0x80,0x00,
0x00,0x20,0x7C,0x03,0x80,0x00,0x00,0x70,
0xFC,0x03,0x80,0x00,0x00,0x71,0xFF,0xFF,
0xFF,0xE0,0x00,0x73,0xFF,0xFF,0xFF,0xE0,
0x00,0xF3,0xBC,0x03,0x80,0x60,0x00,0xE3,
0xBC,0x03,0x80,0x00,0x01,0xE1,0x3C,0x03,
0x80,0x00,0x01,0xC0,0x3F,0xFF,0xFF,0xE0,
0x01,0xC0,0x3F,0xFF,0xFF,0xE0,0x03,0xC0,
0x3F,0xFF,0xFF,0xE0,0x03,0x80,0x3C,0x03,
0x80,0x00,0x07,0x80,0x3C,0x03,0x80,0x00,
0x0F,0x80,0x3C,0x03,0x80,0x00,0x0F,0x00,
0x3F,0xFF,0xFF,0xF8,0x1F,0x00,0x3F,0xFF,
0xFF,0xF8,0x1F,0x00,0x3C,0x00,0x00,0x00,
0x06,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char guan64[]={
/* 以下是 '灌' 的 64点阵方正黄草简体 字模,512 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x03,0xCF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x1E,0x07,0xC0,0x00,
0x00,0x00,0x00,0x03,0xF8,0x07,0x80,0x00,
0x00,0x04,0x00,0x03,0xF8,0x0F,0x00,0x00,
0x00,0x06,0x00,0x03,0xF0,0x18,0x00,0x00,
0x00,0x07,0x00,0x01,0xF0,0x30,0x00,0x00,
0x00,0x07,0x80,0x01,0xF0,0x00,0x00,0x00,
0x00,0x03,0xC0,0x01,0xF0,0x00,0x00,0x00,
0x00,0x03,0xE0,0x00,0x00,0x06,0x00,0x00,
0x00,0x03,0xF0,0x00,0x00,0x0F,0xE0,0x00,
0x00,0x07,0xF0,0x00,0x00,0x3F,0xC0,0x00,
0x00,0x07,0xE0,0x00,0x01,0xFF,0x00,0x00,
0x00,0x0F,0x00,0x00,0x0F,0xF8,0x00,0x00,
0x00,0x0C,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x00,0x08,0x00,0x03,0xFF,0x00,0x00,0x00,
0x00,0x08,0x00,0x0F,0xF0,0x07,0xC0,0x00,
0x00,0x00,0x00,0x3F,0x40,0x0F,0xC0,0x00,
0x00,0x00,0x00,0x18,0x80,0x3F,0x80,0x00,
0x00,0x00,0x00,0x01,0x00,0x7F,0x00,0x00,
0x00,0x00,0x00,0x03,0x0F,0xFC,0x00,0x00,
0x00,0x00,0x00,0x06,0x1F,0xF8,0x00,0x00,
0x00,0x00,0x00,0x0E,0x23,0xF0,0x00,0x00,
0x00,0x00,0x00,0x0E,0xC3,0xE0,0x00,0x00,
0x00,0x80,0x00,0x1F,0x87,0xC0,0x00,0x00,
0x00,0xC0,0x00,0x1F,0x8F,0x87,0x80,0x00,
0x00,0x70,0x02,0x0F,0x9F,0x0F,0x80,0x00,
0x00,0x7C,0x02,0x0F,0xBE,0x1C,0xE0,0x00,
0x00,0x3E,0x04,0x07,0xFC,0x18,0xE0,0x00,
0x00,0x3E,0x04,0x03,0xF0,0x1B,0xC0,0x00,
0x00,0x3E,0x0C,0x01,0xE0,0x1F,0x80,0x00,
0x00,0x1C,0x08,0x03,0xC0,0x1F,0x00,0x00,
0x00,0x18,0x18,0x07,0x80,0x7C,0x00,0x00,
0x00,0x18,0x38,0x0F,0x01,0xFC,0x00,0x00,
0x00,0x18,0x30,0x1F,0x07,0xDC,0x00,0x00,
0x00,0x30,0x70,0x3F,0x1F,0x0C,0x00,0x00,
0x00,0x30,0x70,0x7B,0x38,0x0C,0x00,0x00,
0x00,0x30,0xE0,0xF3,0x60,0x0C,0x00,0x00,
0x00,0x30,0xE1,0xE3,0x00,0x0E,0x00,0x00,
0x00,0x71,0xC3,0xE3,0x00,0x3E,0x00,0x00,
0x00,0x71,0xC3,0xC3,0x00,0x6E,0x00,0x00,
0x00,0x73,0x83,0xC3,0x00,0xCE,0x00,0x00,
0x00,0x77,0x80,0x07,0x00,0x9E,0x00,0x00,
0x00,0x77,0x80,0x07,0x00,0x9C,0x00,0x00,
0x00,0x7F,0x00,0x07,0x00,0x9C,0x00,0x00,
0x00,0x7F,0x00,0x07,0x00,0xBC,0x00,0x00,
0x00,0x7E,0x00,0x07,0x00,0xFC,0x00,0x00,
0x00,0x7E,0x00,0x07,0x00,0xFC,0x00,0x00,
0x00,0x7C,0x00,0x07,0x00,0xFF,0x00,0x00,
0x00,0x7C,0x00,0x06,0x00,0xDE,0x00,0x00,
0x00,0xFC,0x00,0x06,0x00,0x5C,0x00,0x00,
0x01,0xF8,0x00,0x06,0x00,0x78,0x00,0x00,
0x00,0xF8,0x00,0x0E,0x00,0x78,0xF8,0x00,
0x00,0xF8,0x00,0x0E,0x00,0xFF,0xF8,0x00,
0x00,0x78,0x00,0x0E,0x01,0xFF,0xB0,0x00,
0x00,0x70,0x00,0x06,0x01,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char matarray16k[]={
/* 以下是 '该' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x08,0x60,0x08,0x00,
0x00,0x0C,0x03,0xF0,0x18,0x50,0x30,0x90,
0x11,0x70,0x11,0xA8,0x14,0x58,0x18,0xB0,
0x13,0x70,0x04,0x8C,0x03,0x04,0x00,0x00,
/* 以下是 '程' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x02,0x00,0x0C,0xFC,
0x3C,0x88,0x08,0x88,0x0E,0x70,0xF8,0x18,
0x18,0xE0,0x1E,0x20,0x28,0xF0,0xC8,0x20,
0x08,0x3E,0x09,0xC0,0x08,0x00,0x00,0x00,
/* 以下是 '序' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x80,0x00,0x90,0x0B,0xE0,
0x0C,0x00,0x0B,0xF0,0x08,0x40,0x10,0x80,
0x11,0xFC,0x1E,0x88,0x20,0x80,0x20,0x80,
0x40,0x80,0x80,0x80,0x01,0x80,0x00,0x80,
/* 以下是 '已' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0xC0,0x0F,0x40,
0x00,0xC0,0x10,0x80,0x10,0x80,0x1F,0x00,
0x10,0x00,0x10,0x00,0x10,0x04,0x10,0x04,
0x08,0x06,0x07,0xF8,0x00,0x00,0x00,0x00,
/* 以下是 '集' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x02,0x80,0x04,0x10,0x07,0xE0,
0x0C,0xE0,0x17,0x80,0x05,0xC0,0x06,0xB0,
0x0B,0x40,0x08,0x9C,0x1F,0xE0,0x23,0x40,
0x05,0x30,0x09,0x1C,0x31,0x00,0x00,0x00,
/* 以下是 '成' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x03,0x00,0x01,0x30,0x01,0x10,
0x01,0x00,0x01,0xC0,0x1E,0x80,0x10,0x90,
0x12,0x90,0x1E,0x60,0x12,0x60,0x22,0x60,
0x26,0x92,0x45,0x0A,0x00,0x06,0x00,0x00,
/* 以下是 '小' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x18,
0x11,0x0C,0x21,0x04,0x21,0x00,0x01,0x00,
0x07,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '型' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x08,0x03,0x08,0x1E,0x28,
0x0A,0x48,0x0F,0xC8,0x7A,0x48,0x0A,0x08,
0x12,0x18,0x21,0x08,0x01,0x40,0x07,0x80,
0x01,0x00,0x01,0xF8,0x3E,0x00,0x00,0x00,
/* 以下是 '汉' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x30,0x00,0x11,0xF0,
0x02,0x20,0x04,0x20,0x62,0x40,0x29,0x40,
0x10,0x80,0x11,0x40,0x22,0x60,0x64,0x38,
0x78,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '字' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x01,0x00,0x01,0x10,0x11,0xF8,
0x1E,0x10,0x20,0xC0,0x07,0xC0,0x00,0x80,
0x01,0x38,0x1F,0xC0,0x20,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x01,0x80,0x00,0x00,
/* 以下是 '库' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x80,0x00,0x80,0x01,0xF0,
0x0E,0x80,0x08,0xF0,0x0B,0x00,0x09,0x40,
0x0A,0x78,0x13,0xC0,0x10,0x7E,0x2F,0xC0,
0x20,0x40,0x40,0x40,0x00,0x40,0x00,0x40,
/* 以下是 ',' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,
0x10,0x00,0x10,0x00,0x20,0x00,0x00,0x00,
/* 以下是 '可' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x7F,0x40,0x00,0x20,0x07,0x20,0x19,0x20,
0x12,0x20,0x0E,0x40,0x00,0x40,0x00,0x40,
0x00,0x40,0x00,0xC0,0x00,0x40,0x00,0x00,
/* 以下是 '脱' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0x08,0x3D,0x90,
0x24,0x80,0x24,0x70,0x25,0x90,0x25,0x20,
0x35,0xE0,0x24,0xA0,0x24,0xC0,0x45,0x42,
0x4E,0x22,0x88,0x3E,0x00,0x00,0x00,0x00,
/* 以下是 '离' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x03,0x00,0x01,0x30,0x1F,0xC0,
0x00,0xA0,0x0F,0xA0,0x0A,0xA0,0x0F,0xE0,
0x09,0x00,0x03,0xF8,0x1E,0x88,0x17,0xC8,
0x14,0x88,0x10,0x70,0x10,0x10,0x00,0x00,
/* 以下是 '文' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x02,0x00,0x01,0x80,0x00,0x00,
0x00,0x70,0x07,0x80,0x18,0x80,0x01,0x80,
0x05,0x00,0x03,0x00,0x03,0x00,0x04,0xC0,
0x38,0x70,0x00,0x3E,0x00,0x00,0x00,0x00,
/* 以下是 '件' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x08,0x40,0x0C,0x40,0x08,0x40,
0x11,0x40,0x11,0xF0,0x32,0x40,0x50,0x44,
0x91,0xF8,0x12,0x40,0x10,0x40,0x10,0x40,
0x10,0x40,0x10,0x40,0x00,0x00,0x00,0x00,
/* 以下是 '的' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0x20,0x0C,0x20,
0x08,0x40,0x10,0x48,0x1E,0xFC,0x23,0x0C,
0x24,0x8C,0x3C,0x48,0x24,0x08,0x24,0x08,
0x3C,0x08,0x00,0x38,0x00,0x18,0x00,0x00,
/* 以下是 '支' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0xE0,0x0F,0x00,0x01,0x00,0x01,0xC0,
0x0E,0x40,0x08,0x80,0x06,0x80,0x01,0x00,
0x02,0xC0,0x0C,0x78,0x30,0x1C,0x00,0x00,
/* 以下是 '持' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x08,0x20,0x08,0x20,0x08,0x20,
0x08,0x70,0x3C,0x20,0x08,0x3E,0x0F,0xD0,
0x08,0x1C,0x3B,0xF0,0xC9,0x10,0x08,0x90,
0x08,0x10,0x18,0x10,0x00,0x30,0x00,0x00,
/* 以下是 '运' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x00,0x60,0x11,0x80,
0x00,0x00,0x00,0x78,0x27,0x80,0x71,0x80,
0x21,0x20,0x22,0xF0,0x23,0x10,0x20,0x00,
0x5F,0x80,0x00,0xFC,0x00,0x00,0x00,0x00,
/* 以下是 '行' 的 16点阵楷体_GB2312 字模,32 byte */
0x00,0x00,0x00,0x00,0x06,0x00,0x0C,0x38,
0x10,0x40,0x24,0x00,0x04,0x1F,0x0B,0xF0,
0x18,0x10,0x28,0x10,0xC8,0x10,0x08,0x10,
0x08,0x10,0x08,0x70,0x00,0x20,0x00,0x00,
};
int main(void)
{
int i, j;
initgr(); /* BGI初始化 */
drawmat(yi12, 12, 100, 125, WHITE);
drawmat(er12, 12, 115, 125, WHITE);
drawmat(dian12, 12, 130, 125, WHITE);
drawmat(zhen12, 12, 145, 125, WHITE);
drawmat(song16, 16, 160, 123, YELLOW);
drawmat(ti16, 16, 180, 123, YELLOW);
drawmat(zi24, 24, 200, 119, CYAN);
drawmat(mo24, 24, 230, 117, GREEN);
drawmat(guan48, 48, 350, 110, RED);
drawmat(guan64, 64, 410, 100, YELLOW);
for(i = 0; i < 15; i++)
drawmat(matarray16k + i * 32, 16, 200 + i * 15, 200, WHITE);
drawmat(matarray16k + 8 * 32, 16, 200 + i * 15, 200, WHITE);
drawmat(matarray16k + 9 * 32, 16, 200 + (++i) * 15, 200, WHITE);
drawmat(matarray16k + 10 * 32, 16, 200 + (++i) * 15, 200, WHITE);
for(i = 18; i < 25; i++)
drawmat(matarray16k + (i - 3) * 32, 16, 200 + i * 15, 200, WHITE);
getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}