社区
C语言
帖子详情
点阵字库,宽12,高16.
fanxinwu
2009-08-20 01:23:05
我已经有latin1 ISO 8859-1 宽6,高8的字库了。
现在需要把这些字扩大一倍,宽12,高16。
询问前辈们,有什么适用的软件,或者表格,可以借鉴下。
...全文
150
4
打赏
收藏
点阵字库,宽12,高16.
我已经有latin1 ISO 8859-1 宽6,高8的字库了。 现在需要把这些字扩大一倍,宽12,高16。 询问前辈们,有什么适用的软件,或者表格,可以借鉴下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jixingzhong
2009-08-20
打赏
举报
回复
程序里面符号有问题,你自己改一下,思想一样。
由于在中文环境下,输入的是汉字的内码,我们必须将之转换成区位码,算出偏移量,从字库中找到对应的汉字,将其字模显示即可。 内码转换成区位码方法如下:
qh=c1-0xa0 wh=c2-0xa0
其区位码就是:
qw=qh*0xff+wh
该汉字在字库中离起点的位置是:
offset=(94*(qh-1)+(wh-1))*32L
程序例:
#include <graphics.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <stdlib.h>
#include <conio.h>
#define ROW 1/*纵坐标放大倍数*/
#define COL 2/*横坐标放大倍数*/
void main()
{
int x,y;
char *s="汉字显示程序";
FILE *fp;
char buffer[32];/*buffer用来存储一个汉字*/
register m,n,i,j,k;
unsigned char qh,wh;
unsigned long offset;
int gd=DETECT,gm;
initgraph(&gd,&gm," ");
if ((fp=fopen("hzk16","rb"))==NULL)
/*打开汉字库,该字库可以在ucdos中找到*/
{
printf("Can't open haz16,Please add it");
getch(); closegraph(); exit(0);
}
x=20; y=100;/*显示位置设置*/
while(*s)
{
qh=*(s)-0xa0;/*汉字区位码*/
wh=*(s+1)-0xa0;
offset=(94*(qh-1)+(wh-1))*32L;/*计算该汉字在字库中偏移量*/
fseek(fp,offset,SEEK_SET);
fread(buffer,32,1,fp);/*取出汉字32字节的点阵字模存入buffer中(一个汉字)*/
for (i=0;i<16;i++)/*将32位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示汉字*/
for(n=0;n<ROW;n++)
for(j=0;j<2;j++)
for(k=0;k<8;k++)
for(m=0;m<COL;m++)
if (((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
putpixel(x+8*j*COL+k*COL+m,y+i*ROW+n,GREEN);
s+=2;/*因为一个汉字内码占用两个字节,所以s必须加2*/
x+=30;
}
getch();
closegraph();
}
上述程序在Turbo C 2.0编译系统下运行成功,它可以将汉字放大显示,读者可以将它改成函数用在您的程序中显示汉字。
jixingzhong
2009-08-20
打赏
举报
回复
一个古老的点阵汉字程序,可以参考一下,似乎可以定义放大倍数:
forwrj
2009-08-20
打赏
举报
回复
还有一点,所有的字符不一定等宽
forwrj
2009-08-20
打赏
举报
回复
我用的字体一般是16X16 14X14 或20X20的
英文是Arial中文是宋体
可以写个工具提取wimdows里面的失量字转化成想关点阵字库.
HZK中文
点阵字库
例如,
12
*
12
点阵就是一个
12
像素
宽
、
12
像素
高
的方格,用来绘制一个字符。点阵字体的大小直接影响到清晰度和显示效果,更大的点阵尺寸意味着更
高
的清晰度,但也会占用更多的存储空间。 在HZK中文
点阵字库
中,"HZK"是...
点阵
16
乘
16
.rar
此字体下对应的点阵为:
宽
x
高
=
16
x
16
--*/ 0x10,0x01,0x10,0x01,0x10,0x21,0x08,0x11,0x08,0x09,0x0C,0x05,0x0C,0x03,0x0A,0x01, 0x89,0x01,0x48,0x01,0x28,0x01,0x08,0x41,0x08,0x41,0x08,0x41,0x08,0x7E,0x08,0x00...
ASC/GB23
12
字库
3. GB23
16
16
.DZK:这可能是
16
x
16
像素的GB23
12
汉字字库,适用于中等大小的文本。 4. GB23
12
12
.DZK:表示
12
x
12
像素的GB23
12
汉字字库,适用于空间有限但仍然需要可读性的场合。 5. ASCS
16
32.DZK:这是一个
16
x32像素的...
取字模软件
12
864 点阵
增加生成英文
点阵字库
功能,可自动生成ASCII码从0-
12
7的任意
点阵字库
,使用方法同生成国标
点阵字库
功能。 14。再次优化代码,去掉各种调试信息,使程序速度再快一些。 15。还有许多细微的调整我记不清了…… 需要...
C语言
70,039
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章