非位图显示点阵字库中文显示
基于上次的帖子 基于HZK16和HZK12的点阵字体显示体验,不过这次是用C语言实现罢了
https://www.cncalc.org/thread-25299-1-1.html
可知如何采用位运算的方法进行像素内容显示,只需要把每个字节与相应的字节位比较即可
比如需要显示一行数据,十进制是6,二进制是110 ,补位后是0110
1110
可以分别与十进制数 8 二进制数 1000
十进制数 4 二进制数 0100
十进制数 2 二进制数 0010
十进制数 1 二进制数 0001
比较 获得每个位的信息
方法比较直观,但是考虑到9860内存只有64K,中文字库不可能直接读到内存中,文件需要一直保持在打卡位置,当应用结束后关闭
int draw_font(int file_handle,char a1,char a2,char x,char y)
{
unsigned char chunk;
int i,j,k,n,offset;
unsigned char data8 = {128,64,32,16,8,4,2,1};
offset = (94*a1+a2)*24;
Bfile_ReadFile(file_handle, chunk, 24, offset);
for(j=0;j<12;j++){
for(k=0;k<2;k++){
n = chunk;
for (i=0;i<9;i++){
if (n>=data8){
n = n - data8;
Bdisp_SetPoint_VRAM(x+i+8*k,y+j,1);
}
}
}
}
Bdisp_PutDisp_DD();
}
源代码在此
https://www.xgjzx.cn/gbk 转码工具在此 厉害啊。 具体怎么弄,能说具体点吗,大神 zqbxcx 发表于 2023-7-14 22:46
具体怎么弄,能说具体点吗,大神
没看明白,没有解释
页:
[1]