导读 虎扑足球论坛 ,可以把普通的字母(ASCII下常用的128个字符I),转换成8*16的字模。提供一个我早年编写的turbo C程序给你参考,不过是用来...
虎扑足球论坛 ,可以把普通的字母(ASCII下常用的128个字符I),转换成8*16的字模。
提供一个我早年编写的turbo C程序给你参考,不过是用来提取中文汉字字模的,当然也能提取普通字符,不过提取出来的应该是16×16的字模,你可以参考一下思路自己修改。其中字模是要从以前的UCDOS里面的一个文件“HZK16”提取,所以要在当前文件夹下有此文件;zk.dat这个文件里存的是要提取的那些汉字,是一个纯文本文件,可以实现想提取那些汉字就提取哪些;最后提取出来的汉字字模是存在ch16.vol这个文件里。另外在UCDOS里还有一个字模文件“ASC16”,里面存的是16×16的ASCII码字符。#include#include#includevoid main(){ FILE *fp,*ofp,*ifp; int i1,i2,i3,d,m,row=0,col=0,trow=0; int c,c1,f=0,rr; long length; char by[32]; int gm=VGA,gd=VGAHI; registerbgidriver(EGGA_driver); initgraph(&gm,&gd,); if((fp=fopen(hzk16,rb))==NULL) { printf(\7 Usage:hzk16 can not open!); exit(0); } if((ifp=fopen(zk.dat,r))==NULL) { printf(\7 Usage:can't open zk.dat!); exit(0); } if((ofp=fopen(ch16.vol,wb))==NULL) { printf(\7 Usage: can't open file ); exit(0); } fseek(ofp,0,SEEK_SET); while((c=getc(ifp))!=EOF) { if(kbhit()) break; if(c>0xa1) if(f==0) { f=1; c1=(c-0xa1)&0x07f; } else { f=0; length=(c1*94+((c-0xa1)&0x07f))*32L; c1=24; rr=8; } else { c=c&0x07f; f=0; if(c>=0x020) { length=c; c1=12; rr=8; col+=12; } else { c1=0; rr=0; } } if(f==0) if(c1==0) { col=0; trow+=20; if(trow>470) { initgraph(&gm,&gd,); trow=0; } row=trow; } else { fseek(fp,length,SEEK_SET); fread(by,1,32,fp); fwrite(by,1,32,ofp); for(i1=0;i1<16;i1++) { for(i2=0;i2<2;i2++) for(i3=0;i3>n)&1);}