⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd字库程序.txt

📁 c51经典子程序代码全集
💻 TXT
字号:
用【 小 | 中 | 大 】字体浏览 
C51编程:请问 从HZK16 提取的汉字字模是什么格式的 [凡非] [18次] 01-10-31 上午 11:19:14

是这样的格式 [smiling21cn] [52次] 01-10-31 下午 02:22:48 
byte0  byte1
byte2  byte3
...    ...
byte30 byte31 

LCD汉字库的建立 [aaa] [77次] 01-10-31 下午 03:32:07 
这要看你存的文件是二进制还是ASCII码文件了,本人曾经编写了一段c语言的程序提取汉字
库字模,你是否需要? 

我需要,可以mail一份吗?zhangxhliu@hotmail.com [zhangxhliu] [4次] 01-10-31 下午 05:32:58 

多谢,chan_yc@163.com [凡非] [6次] 01-10-31 下午 06:51:09 

我也需要,也可以mail一份吗?zhaojinjun_302@163.com。谢谢! [zhaojinjun_302] [4次] 01-10-31 下午 09:32:05 

还没收到呀! [凡非] [0次] 01-11-1 下午 05:59:40 

LCD字库程序 [aaa] [23次] 01-11-2 上午 10:13:17 
已经发送! 

(抱歉)LCD字库程序 [aaa] [42次] 01-11-2 上午 10:45:49 
(因为机器故障,只有通过此方式给大家)
/*此程序用于生成汉字的点阵*/
/*输入汉字文本文件生成名为SMCCLIB.DOT的纯点阵字库*/
/*需要汉字库HZK16在当前目录*/
/*系统提示时输入一个文本汉字文件*/
#include  <graphics.h>
#include  <stdio.h>
#include  <string.h>
#include  <dos.h>

unsigned char   *WordDot16;
int             WordNum16=0;

main()
{
       unsigned long int i,j,NumBytes,Reen,FileLong;
       unsigned int      Qu,Wei,m,Word,WordNum,Shzk[500];
       unsigned char     PreHalf,BakHalf,Byte,*FileBuf,Dot[32],buf;
       FILE              *fp1,*fp2,*fp3;
       char              SouceFile[12],p[500];
       int            driver,mode;
       if((fp1 = fopen("smcclib.dot","wb")) == NULL)
    { printf("Lib File Open Error!\n");
      getch();
      exit(0);
    }
    printf("Input Chinese Souce File Name:");
    scanf("%s", &SouceFile);
    if((fp2 = fopen(SouceFile, "r")) == NULL)
    {  printf("Souce File Open File Error \n");
       getch();
       exit(0);
    }
    if((fp3=fopen("d:\\sk\\hzk\\hzk16","rb"))==NULL)
       {   printf("Can not Open File HZK16\n");
           getch();
           exit(1);
       }
    FileLong=filelength(fileno(fp2));
    FileBuf=(char *)malloc(FileLong);
    for(i=0;i<FileLong;i++)
     fscanf(fp2,"%c",&FileBuf[i]);
    WordNum=0;
    for(i=0;i<FileLong;i++)
    {if(FileBuf[i]>0xa0)
        {     Word=FileBuf[i]*256+FileBuf[i+1];
              i++;
              for(j=0;j<WordNum;j++)
              {    if(Word==Shzk[j])
            j=WordNum+2;
              }
              if(j==WordNum)
              {Shzk[WordNum++]=Word;}
        }
     }
     for(i=0;i<WordNum-1;i++)
    {    PreHalf=Shzk[i]>>8;
        BakHalf=Shzk[i]&0x00ff;
        /*如果需要加入内码,需要加入以下二句*/
        /*否则生成无内码的纯点阵字库*/
        fwrite(&PreHalf,1,1,fp1);
        fwrite(&BakHalf,1,1,fp1);
        Qu=PreHalf-160;
        Wei=BakHalf-160;
        Reen=(Qu-1)*94+Wei;
        NumBytes=(Reen-1)*32;
        fseek(fp3,NumBytes,SEEK_SET);
        fread(Dot,1,32,fp3);
        for(m=0;m<32;m++)
        {   buf=Dot[m];
            fwrite(&buf,1,1,fp1);
        }
    }
    fclose(fp3);
    fclose(fp1);
    free(FileBuf);
    fclose(fp2);
}


 

 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -