荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: zzt (好好学习,天天向上), 信区: Program
标 题: [转载] [转寄] Re: 请教UCDOS16点阵字库汉字字模地址
发信站: BBS 荔园晨风站 (Thu Mar 2 16:59:28 2000), 转信
【 以下文字转载自 zzt 的信箱 】
【 原文由 zhuzutao.bbs@bbs.whnet.edu.cn 所发表 】
发信人: yanlaoda (我是谁), 信区: Programming WWW-POST
标 题: Re: 请教UCDOS16点阵字库汉字字模地址
发信站: 武汉白云黄鹤站 (Mon Jan 3 16:41:37 2000) , 站内信件
int hzk;
void open(void);
void get(char incode[],char bytes[]);
void dishz(int x,int y,char code[],int color);
void hanxian(int x,int y,char *s,int size)
{
int driver=DETECT;
int mode=0;
initgraph(&driver,&mode,"");
open();
while(*s!=NULL)
{
while((640-x)>(16*size)&&*s!=NULL)
{
dishz(x,y,s,LIGHTRED);
x+=16*size;
s+=2;
}
x=10;
y+=20*size;
}
close(hzk);
closegraph();
}
void open()
{
hzk=open("hzk16",O-BINARY|O-RDONLY);
if(hzk==-1)
{printf("error");
getch();
closegraph();
exit(1);
}
}
void get(char code[],char bytes[])
{
unsigned char qh,wh;
unsigned long offset;
qh=incode[0]-0xa0;
wh=incode[1]-0xa0;
offset=(94*(qh-1)+(wh-1))*72l;
lseek(hzk,offset,SEEK-SET);
read(hzk,bytes,32);
}
void dishz(int x0,int y0,char code[],int color)
{
unsigned char mask[]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};
register int i,j,k,q,r;
char mat[32];
get(code,mat);
for(i=0;i<16*size;i+=size)
for(q=0;q<size;q++)
for(j=0;j<22;j++)
for(k=0;k<8;k++)
{
if ((mask[k%8]&mat[3*i/size+j])!=NULL)
for(r=0;r<size;r++)
putpixel(x0+i+size,y0+j*size*8+k*size,color)
}
}
【 在 yemao (野猫) 的大作中提到: 】
: 请教那位高手,如何由汉字区位码得到UCDOS16点阵字库的字模地址,用C语言实现。
: 急需,不胜感谢!
--
※ 来源: 武汉白云黄鹤站 bbs.whnet.edu.cn. [FROM: 202.114.7.210]
--
※ 转寄:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: 210.39.3.50]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.11]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店