点阵字介绍

点阵字介绍

什么是点阵字?
对于一个屏幕来说,就是无数个点组成的平面,通过设置每个点的颜色来显示图形。
因此只要设置好每个点的颜色,那么当然也可以显示文字。

为什么要用它?
对于旧的系统或者类似NDS这种嵌入式系统没有足够的空间去存储其他文字。
所以人们利用图形模式,把文字的点阵信息事先存好然后再通过画图的方式显示他们。

需要准备些什么?
你需要一些点阵字库
比如中文字符库HZK12/16/24/宋体/楷体….
比如英文字符库ASC12/16/24/其他字体…..
另外你的开发平台需要拥有画点的函数。

一些介绍
关于HZK16,这是最常用的一个点阵字符集。
他把一个汉字按照16×16的像素来描绘。
你需要一个长度为32的字符串来存储这些数据。
一个中文被分为左右两部分。先描绘左面的16行8列然后是右面的。
关于HZK12,这是一个12×16的字库。
这种存法只是为了查找方便。其实{zh1}的一个字节是没有东西的。
所以你需要一个长度为24的字符串来存储他。

如何换算一个GB2312在HZK中的位置?
本文以HZK12为例,HZK16/24你可以非常轻易的搜索到。
//汉字string[2]=”
char string[3] = “我”;
//该汉字在HZK12中的偏移地址
long offset = 0;
//转换用字符
char qh,wh;
//点阵信息
char chartemp[24];
//HZK12文件
FILE fr* = fopen(“HZK12″,”rb”);
//开始转换
qh = strings[0] – 161+256;
wh = strings[1] – 161+256;
offset = (94*qh+wh)*24;
//寻找便宜地址
fseek(fr,offset,SEEK_SET);
//读取点阵信息
fread(chartemp, 24, 1, vb.testRead);
//显示他们
for(j=0;j<12;j++)
for(i=0;i<2;i++)
for(k=0;k>k))
//这是NDS用的描点函数x,y为输出的位置的偏移量,RGB为16bit调色板。
video_bufferprint[(j+y)*256 + k+i*8 + x] = RGB15(r,g,b) | BIT(15);
//下一个汉字的输出位置的偏移量
x = x + 12;


Please notice: Comments are moderated by an Admin.


郑重声明:资讯 【点阵字介绍】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——