社区
C语言
帖子详情
关于汉字库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
打赏
收藏
关于汉字库HZK16F的菜.............50分
已知汉字的区位码 xy(在UCDOS下输入xy即可得到相应汉字) i=(x-1)*94+y-1 fseek(fhz,i,0); fread(buffer,32L,1,fhz) 得到点阵信息,用putpixel输出点阵,但是一堆垃圾........ 人们不禁要问:汉字库怎么了???? 各种法都试了,WHY??????????? 50分。。。。。。。。 晚上。。。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 不愧是老大,那么老的代码还留着,小敌对老大的敬仰之情……旁边有人吐了,算了,不说了
汉字点阵库大全 HZK12 HZK14 HZK16 HZK24 HZK32 HZK40 HZK48 ASC12 ASC16 ASC48
HZK16F
仿宋 HZK16H 黑体 HZK16K 楷体 HZK16Y 幼圆 HZK16L 隶书 HZK16C 粗体 HZK16X 细 HZK16V 繁 HZK24F 24x24 仿宋汉字打印点阵 一个汉字72Byte HZK24H 24x24 黑体汉字打印点阵 一个汉字72Byte HZK24K 24x24 楷体...
汉字点阵库
HZK16F
'16x16 繁体宋体汉字点阵 一个汉字32Byte HZK24F '24x24 仿宋汉字打印点阵 一个汉字72Byte HZK24H '24x24 黑体汉字打印点阵 一个汉字72Byte HZK24K '24x24 楷体汉字打印点阵 一个汉字72Byte HZK24S '24x24 ...
最全的字符点阵字库文件
hzk16F
汉字库
仿宋16X16 HZK24F
汉字库
仿宋24X24 HZK24H
汉字库
黑体24X24 HZK24K
汉字库
楷体24X24 HZK24S
汉字库
宋体24X24 HZK24T 全角字符库24X24 HZK24Z
汉字库
篆体24X24 HZK40S
汉字库
宋体40X40 HZK40T 全角字符...
BorlandC
汉字库
HZK像素字模
HZK和ASCII像素字模文件及C语言源代码,可在BorlandC图形界面中打印汉字。
2021-09-27
C++语言读取点阵字库 最近研究了一下点阵字库,发现网上没有很好的现成C++代码,基本上都是C语言的代码读取USDOS的点阵字库。...
hzk16F
汉字库
仿宋16X16 HZK24F
汉字库
仿宋24X24 HZK24H
汉字库
黑体24X24 HZ
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章