博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UCDOS点阵字库
阅读量:4959 次
发布时间:2019-06-12

本文共 1484 字,大约阅读时间需要 4 分钟。

ASC12         ASCII字库文件 12X6

ASC16         ASCII字库文件 16X8
ASC48         ASCII字库文件 48X24

Hzk12         汉字库宋体 12X12

Hzk16         汉字库宋体 16X16
hzk16F        汉字库仿宋 16X16

HZK24F        汉字库仿宋 24X24
HZK24H        汉字库黑体 24X24
HZK24K        汉字库楷体 24X24
HZK24S        汉字库宋体 24X24
HZK24T        全角字符库 24X24
HZK24Z        汉字库篆体 24X24

HZK40S        汉字库宋体 40X40
HZK40T        全角字符库 40X40

HZK48S        汉字库宋体 48X48
HZK48S        全角字符库 48X48

 

点阵汉字的显示

显示汉字以16*16点阵字库为例,通常的方法是:将文件工作指针移到需要的汉字字模处、

将汉字库文件读入一2*16数组再用for循环一位位地显示。以使用 VGA HI模式显示“我”字为例,程序如下:

#include "graphics.h"    #include "stdio.h"    main()    { int i=VGA,j=VGAHI,k;     unsigned char mat[16][2],chinease[3]="我";     FILE *HZK;     if((HZK=fopen("hzk16","rb"))==NULL)exit(0);     initgraph(&i,&j,"");     i=chinease[0]-0xa0;j=chinease[1]-0xa0; /*获得区码与位码*/     fseek(HZK,(94*(i-1)+(j-1))*32l,SEEK_SET);     fread(mat,32,1,HZK);     for(j=0;j<16;j++)      for(i=0;i<2;i++)      for(k=0;k<8;k++)       if(mat[j][i]&(0x80>>k)) /*测试为1的位则显示*/       putpixel(i*8+k,j,WH99vE);      getch();     closegraph();     fclose(HZK);    }

 

打印字库 : UCDOS的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)HZK24系列是24*24的点阵字库,

每字模占用3*24字节。如果你按照HZK16的显示方法的话,你会看到字被放倒了。这是因为该类字库与一般的汉字库不同,
这类大字模汉字库是专供打印的打印字库,为了打印的方便将字模都放倒了,使用时只要将字模的位信息纵横转置显示即可。
例如你如果定义为mat[24][3]则应该这样输出:

 for(i=0;i<24;i++)      for(j=0;j<24;j++)      if((0x80>>i%8)&mat[j][i/8]) /*转置显示*/       putpixel(j+x,y+i,color);

一类字库HZK12,虽然属于标准字库类型,但如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。

因为字库设计者为了使用的方便,字摸每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,
虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。

 

 

 

 

转载于:https://www.cnblogs.com/shangdawei/archive/2013/05/13/3075850.html

你可能感兴趣的文章
结对作业(2)----单元测试
查看>>
秋季总结
查看>>
【JavaScript】关于 eval()执行JavaScript语句的一次实验测试
查看>>
centos6.5安装mysql
查看>>
java io(2)
查看>>
我的新浪博客要迁移到这里了。
查看>>
JavaScript高程读书笔记
查看>>
情感分歧可视化方法
查看>>
HowTo: ListView, Adapter, getView and different list items’ layouts in one ListView
查看>>
php 递归函数的三种实现方式
查看>>
洛谷 P4345 [SHOI2015]超能粒子炮·改 解题报告
查看>>
三种消除数组的办法
查看>>
android第一行代码-5.监听器的两种用法和context
查看>>
2019年春季学期第三周作业
查看>>
python清华大学镜像
查看>>
嵌套字典
查看>>
Ajax+Node分页
查看>>
es6新增的API
查看>>
.Net基础之2——C#基础
查看>>
lvs部署-DR模式
查看>>