汉字点阵生成源码 两种方式生成 适合新手学习

时间:2016-06-24 03:39:39
【文件属性】:

文件名称:汉字点阵生成源码 两种方式生成 适合新手学习

文件大小:484KB

文件格式:ZIP

更新时间:2016-06-24 03:39:39

点阵 字体 字模转换 汉字取模

本例题采用两种方式列举了汉字取模方法,并用图像生动的显示出来,可以说是新手学习的好例题。 1.以16点阵汉字取模方式 通过定位读取 HZK16 文件(源码内附带这个文件,可以不用下载了)方式,详细说明实现方法。 2.通过GetGlyphOutline这个函数实现,用户可以手动选择Windows自带的字体,然后根据字体生成相应的数组,最后绘制数组显示。 以上源码楼主测试,在VC6.0下完全通过,可直接运行。 以上代码仍有很多不足之处,请大家留言指正哈. 关键代码: BOOL CPixFontTranDlg::GetGridFromHZK16(CString strFont,BYTE buffer[]) { ... AnsiCode[0]=strFont.GetAt(0); if(AnsiCode[0]<160) //英文字母和字符,转换为全角的字符内码 { BYTE temp=AnsiCode[0]; AnsiCode[0]=HIBYTE(temp-0x21+0xA3A1); //0xA3A1 是ASCII 码为0X21的字符对应的全角字符的内码,这是一个偏移量的计算 AnsiCode[1]=LOBYTE(temp-0x21+0xA3A1); } else //是汉字,则直接转换 { AnsiCode[1]=strFont.GetAt(1); } qh=AnsiCode[0]-160; //区码和位码 wh=AnsiCode[1]-160; location=(94*(qh-1)+(wh-1))*32; //HZK16 中的索引 32是一个字的字模字节数 .... } BOOL CPixFontTranDlg::GetGridFormWinSDK(CString strFont,BYTE buffer[],CString strFontName) { CFont newfont; newfont.CreateFont(16,0,0,0,0,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,strFontName); //根据字体的大小和名称创建一个字体,m_strFontName就是WINDOWS中的字体名称 ..... nLen=::GetGlyphOutline(pdc->GetSafeHdc(),chartemp,GGO_BITMAP,&glpm,0,NULL,&mmat2); //根据MSDN,cbBuffer 传入参数0,则返回值是BUFFER的大小 if((signed)nLen>0) { .... nLentemp=::GetGlyphOutline(pdc->GetSafeHdc(),chartemp,GGO_BITMAP,&glpm,nLen,pBuf,&mmat2);//重新运行,获取BUFFER的数据,pBUF就是字符对应位图的BUFFER指针 } ... offset=8-rows/2; //从点阵第一行到字的第一行的偏移量 for(i=0;i


【文件预览】:
PixFontTran
----MyDrawFont.h(1KB)
----resource.h(965B)
----PixFontTran.aps(35KB)
----Debug()
----PixFontTran.rc(6KB)
----PixFontTran.clw(2KB)
----PixFontTran.opt(55KB)
----PixFontTranDlg.cpp(8KB)
----PixFontTran.ncb(57KB)
----PixFontTran.plg(256B)
----modal()
--------HZK24K(476KB)
--------HZK16(261KB)
----PixFontTran.cpp(2KB)
----ReadMe.txt(4KB)
----PixFontTran.h(1KB)
----res()
--------PixFontTran.ico(1KB)
--------PixFontTran.rc2(403B)
----PixFontTranDlg.h(2KB)
----StdAfx.cpp(213B)
----PixFontTran.dsp(4KB)
----MyDrawFont.cpp(3KB)
----PixFontTran.dsw(528B)
----StdAfx.h(1KB)

网友评论

  • 没下下来,在下一次
  • 还是有点用的,谢谢。
  • 就是这样,懒得自己动脑子,每次都想找现成的,悲哀,不过代码还是有一点用的
  • 看过了,但还是不怎么懂
  • 不是我要的效果,不过还是谢谢了!
  • 还可以的。就是有的字点阵需要优化。
  • 不是我要的效果,我想要的是如何以坐标点的形式画出字体轮廓,还是很感谢作者
  • 这资源太赞了,自己可以扩展写一个不止一个字符的,收获挺大
  • 还不错,不过我重新建工程后怎么汉字始终显示不正确。
  • 非常好,已经移植,谢谢。
  • 功能虽然简单,但可以参考学习
  • 编译成功,功能简单,实现单个汉字或者字母转换,不是整个文件直接转换
  • 功能太简单了,不能用在实际用途。