关于汉字库HZK16F的菜.............50分

fff99 2000-12-04 12:04:00
已知汉字的区位码 xy(在UCDOS下输入xy即可得到相应汉字)
i=(x-1)*94+y-1
fseek(fhz,i,0);
fread(buffer,32L,1,fhz)
得到点阵信息,用putpixel输出点阵,但是一堆垃圾........
人们不禁要问:汉字库怎么了????
各种法都试了,WHY???????????
50分。。。。。。。。
晚上。。。。。。。。
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fff99 2000-12-04
  • 打赏
  • 举报
回复
呀,好象我忘乘32了,感谢EDYANG。
有的代码,读汉字串时,先 if(hz>0xal){....}
为何要大于0xa1,大于0x80不就和ASCII区分了吗?
edyang老大?
Edward 2000-12-04
  • 打赏
  • 举报
回复
不好意思,贴错了:
int putHZ16( int x, int y, int color, int *buf )
{
int i, j;

for( i = 0; i < 16; i++ )
for( j = 0; j < 8; j++ )
{
if( buf[ i ] & ( 0x80 >> j ) )
putpixel( x + j, y + i, color );
if( buf[ i ] & ( 0x8000 >> j ) )
putpixel( x + j + 8, y + i, color );
}
return 1;
}

int getHZdots( int qu, int wei, int *buf, FILE *hzk16 )
{
unsigned long offset = ( ( qu - 1 ) * 94L + wei - 1 ) * 32L;

fseek( hzk16, offset, SEEK_SET );
fread( buf, 2, 16, hzk16 );
return 1;
}
Edward 2000-12-04
  • 打赏
  • 举报
回复
很久以前的代码:

void putfont( char font[ 32 ][ 32 ], int xcoord, int ycoord,
int xasp, int yasp )
{
int i, j, k, m;

for( i = 0; i < 32; i++ )
{
for( k =0; k < yasp; k++ )
{
for( j = 0; j < 32; j++ )
for( m = 0; m < xasp; m++ )
putpixel( xcoord + j * xasp + m, ycoord + i * yasp + k,
font[ i ][ j ] );
}
}
}
hushui 2000-12-04
  • 打赏
  • 举报
回复
我也有一个,是显示16*16的点阵的汉字的
gethz()是获得区位码,disp()是显示单个汉字
注意vga_drawpixel(x,y);行要根据你的图形开发软件包的写屏幕像素的函数而定
void gethz(int fd_hzk,char incode[2],char bytes[])
{ unsigned char qh,wh;
unsigned long offset;
qh=incode[0]-0xa0;
wh=incode[1]-0xa0;
offset=(94*(qh-1)+(wh-1))*32L;
lseek(fd_hzk,offset,SEEK_SET);
read(fd_hzk,bytes,32L);
}
void disp(int fd_hzk,int x0,int y0, char code[2], int color)
{
unsigned char mask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
int i,j,x,y,pos;
char bytes[32];

gethz(fd_hzk,code,bytes);
vga_setcolor(color);
y=y0;
for(i=0;i<16;i++)
{x=x0;
pos=2*i;
for(j=0;j<16;j++)
{ if((mask[j%8]&bytes[pos+j/8])!=0)
vga_drawpixel(x,y);
++x;
}
++y;
}
}
sxbyl 2000-12-04
  • 打赏
  • 举报
回复
To:edyang 不愧是老大,那么老的代码还留着,小敌对老大的敬仰之情……旁边有人吐了,算了,不说了

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧