1 20 50 150 500
欢迎来到莱福软件站,找素材,搜软件,就上莱福软件站!
当前位置 >首页 >软件下载 >电脑软件 >编程开发 >编程软件

8×16字模制作器

软件信息
  • 分类:编程软件
  • 大小:148KB
  • 语言: 中文
  • 环境: WinAll, Win7
  • 更新:2024-11-13
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / 编程辅助
  • 插件情况:
  • 相关链接: http://www.cr173.com

8×16字模制作器,可以把普通的字母(ASCII下常用的128个字符I),转换成8*16的字模。

提供一个我早年编写的turbo C程序给你参考,不过是用来提取中文汉字字模的,当然也能提取普通字符,不过提取出来的应该是16×16的字模,你可以参考一下思路自己修改。
其中字模是要从以前的UCDOS里面的一个文件“HZK16”提取,所以要在当前文件夹下有此文件;zk.dat这个文件里存的是要提取的那些汉字,是一个纯文本文件,可以实现想提取那些汉字就提取哪些;最后提取出来的汉字字模是存在ch16.vol这个文件里。
另外在UCDOS里还有一个字模文件“ASC16”,里面存的是16×16的ASCII码字符。

#include<stdio.h>
#include<graphics.h>
#include<conio.h>

void 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];
 /*_setvideomode(_VRES16COLOR);*/
 int gm=VGA,gd=VGAHI;
 registerbgidriver(EGAVGA_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)
       {
  /*_setvideomode(_VRES16COLOR);*/
  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<rr;i3++)
    if(getbit(by[i1*2+i2],7-i3))
       /*_setpixel(col+i2*8+i3,row);*/
       putpixel(col+i2*8+i3,row,WHITE);
   row++;
 }
     row=trow;
     col=col+16;
   }
   }
 fclose(ofp);
 fclose(fp);
 fclose(ifp);
 getch();
 /*_setvideomode(_DEFAULTMODE);*/
 closegraph();
}
int getbit(unsigned char c, int n)
{
 return((c>>n)&1);
}

下载地址

热门软件

Top