注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

简约男人

简约,不能简单

 
 
 

日志

 
 
关于我

一个过分渴望被理解的人其实就是一个软弱的人, 勇往直前的力量来自斩钉截铁的决心,不是来自别人的理解.

网易考拉推荐

TC中简单的汉字技术  

2009-10-03 16:46:20|  分类: C\C++\C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
   在图形模式下,采用子模工具提取汉字字模,其实是压缩后的汉字点阵数组。例如

 

char dian12[]={
/* 以下是 '点' 的 12点阵宋体 字模,24 byte */
0x04,0x00,0x07,0xC0,0x04,0x00,0x04,0x00,
0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,
0x00,0x00,0x49,0x40,0xC9,0x20,0x00,0x00,
};

char zhen12[]={
/* 以下是 '阵' 的 12点阵宋体 字模,24 byte */
0xF2,0x00,0x9F,0xE0,0x92,0x00,0xA5,0x00,
0xA5,0x00,0x97,0xE0,0x91,0x00,0xB1,0x00,
0x8F,0xE0,0x81,0x00,0x81,0x00,0x00,0x00,
};
然后后调用函数

void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{
  int i, j, k, n;
  n = (matsize - 1) / 8 + 1;
  for(j = 0; j < matsize; j++)
    for(i = 0; i < n; i++)
      for(k = 0;k < 8; k++)
        if(mat[j * n + i] & (0x80 >> k))  /*测试为1的位则显示*/
          putpixel(x + i * 8 + k, y + j, color);
}

便可画出汉字,如要写出白色的“点”子,可在图形初始化后调用drawmat(dian12, 12, 130, 125, WHITE);。

对于简单的程序没有必要集成全部的汉字库,只需用字模提取工具提取子模数组,把字模数组附加到代码之中即可。

  评论这张
 
阅读(502)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017