首页 > 其他分享 >使用控制台打印显示点阵字体库HZK24、ASC24

使用控制台打印显示点阵字体库HZK24、ASC24

时间:2023-08-17 10:33:27浏览次数:45  
标签:word buffer HZK24 ASC24 字体库 72 printf NULL fphzk

1. 创建codeblocks工程。

   加入字库文件: https://files.cnblogs.com/files/blogs/799931/font.7z?t=1692239003&download=true

2. 编辑代码:

int main(void)
{
    FILE* fphzk = NULL;
    FILE* fpASC24 = NULL;
    int  i,j, k, offset;
    int flag;
    unsigned char buffer[512];
    unsigned char word[5];
 
    fphzk = fopen("HZK24H", "rb"); //HZK24S HZK24K HZK24H
    if(fphzk == NULL){
        fprintf(stderr, "error HZK24H\n");
        return 1;
    }
    fpASC24 = fopen("ASC24H", "rb");
    if(fpASC24 == NULL){
        fprintf(stderr, "error ASC24\n");
        return 1;
    }
    while(1){
        printf("输入要生成字模的字(多个):");
        for(;;){
            fgets((char*)word, 3, stdin);
            if(*word == '\n')
                break;
            if(word[0] >= 0x81)
            {
                offset = (94*(unsigned int)(word[0]-0xa0-1)+(word[1]-0xa0-1))*72 - (0*15*94*72);
                fseek(fphzk, offset, SEEK_SET);
                fread(buffer, 1, 72, fphzk);
                  for(i = 0; i < 72; i++)
                  {
                    for (j = 0; j < 8; j++)
                    {
                      if(buffer[i] & (0x80 >> j))
                        printf("●");
                      else
                        printf("○");
                    }
                    if(i%3==2)
                        printf("\n");
                  }
                  printf("\n");
            }
            else
            {
                offset = (word[0]-0x20)*48 - (0*15*94*48); //区数*94*72
                fseek(fpASC24, offset, SEEK_SET);
                fread(buffer, 1, 48, fpASC24);
                  k=0;
                  for(i = 0; i < 48; i+=2)
                  {
                    for (j = 0; j < 8; j++)
                    {
                      if(buffer[i] & (0x80 >> j))
                        printf("●");
                      else
                        printf("○");
                    }
                    for (j = 0; j < 4; j++)
                    {
                      if(buffer[i+1] & (0x80 >> j))
                        printf("●");
                      else
                        printf("○");
                    }
                    printf("\n");
                  }
                  printf("\n");
            }
        }
    }
    fclose(fphzk);
    fphzk = NULL;
    return 0;
}

 

标签:word,buffer,HZK24,ASC24,字体库,72,printf,NULL,fphzk
From: https://www.cnblogs.com/moon458/p/17636941.html

相关文章

  • 分享一组矢量图标–UX图标字体库
    科技日新月异的今天,市面上各种分辨率、各种显示精度的显示设备层出不穷,在不同精度不同分辨率的显示设备下图标的应用展现出现了不同要求;如设计师为iphone3gs设计的图标在iphone4下的展现就显得很糟糕了。我们为pc端产品设计的图标到平板电脑上显示(newipad)上展现就不尽人意了......
  • Vue2.0项目引入字体库font-awesome
    1.安装依赖npminstallfont-awesome--save2.引入依赖可以选择全局引入或局部引入import'font-awesome/css/font-awesome.min.css';3.使用方式3.1.基本图标......
  • vue实现自定义字体库
      先看效果是不是你所需要的,再看具体如何实现。   效果如下图所示:         有些字体需要下载,用图片就会变得很不清楚,这样我们就需要去下载字......