huzi00008 发表于 2006-11-13 12:00

[求助]打印字体(利用svga和一个字符编码文件

<div ><b><br>
</b></div>

<div><b>[求助] 打印字体(利用svga和一个字符编码文件)</b></div>


<div>老师给了一个svga文件包和zcclib.16字符编码文件。要求读取zcclib,并其中的字输出。<br>
可这2个文件我传不上来。我的是linux系统。没有rar软件。<br><br>
那就请大伙帮我想个方法。<br><br>
老师的提示:字符是点阵打出来的,(16*16)。先将其压缩(16*2),再行输出。<br>
 <br>
可我未得要领。。。。。。。。。。<br><br><br>
望不吝赐教!!!!</div>

jig 发表于 2006-11-13 12:20

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

huzi00008 发表于 2006-11-13 12:54

可是关于svga 的,我怎么把它取出来呢?fopen()吗?<br>

jig 发表于 2006-11-13 13:15

是的,你可以去看看NEO中的汉字显示模块,他就是直接从字摸中读取字摸再画出汉字。代码是开放的哟

huzi00008 发表于 2006-11-13 13:26

那svga呢?还用得着吗?<br>

一笔苍穹 发表于 2006-11-13 15:19

<P>当然用的着,他是要你参考他给的代码,不是你拿来就能用的,你自己还得要在再写一遍。</P>

huzi00008 发表于 2006-11-13 16:59

明白了,谢谢各位!

huzi00008 发表于 2006-11-16 11:46

遇到新问题:matsize指点阵大小,这大小是指16*16的乘积吗?<br>
                            还有<br>
               
             for(k = 0;k
&lt; 8; k++)<br>
            
           
          if(mat[j * n + i] &amp;
(0x80 &gt;&gt; k))  /*测试为1的位则显示*/<br>
         
           
           
            putpixel(x + i
* 8 + k, y + j, color);<br>
               
      代码中mat[j*n+i] 是何意?0x80&gt;&gt;k呢?<br>

jig 发表于 2006-11-16 13:13

<P>就是指 16</P>
[align=right][color=#000066][此贴子已经被作者于2006-11-16 13:14:37编辑过][/color][/align]

huzi00008 发表于 2006-11-20 19:06

现在,老师又进一步出了新的题:要求把上面说过的cclib.16 文件里读出的字中,选择打印出自己的名字,或是自己想要的汉字。<br>
阿弥陀佛,哇哇阿!好难阿!<br>


页: [1]

编程论坛