Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 504|回复: 0

[J2ME学习]点阵字库在J2ME中的实现

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-11 04:01:32 | 显示全部楼层 |阅读模式
    关于点阵字库在J2ME的实现。
           最近在学习C的过程中无意发现了点阵字库的东西。整理了下,在J2ME实现了下相关的算法。

    下面是DOS的一段话
          对于使用少量的汉字图形程序,完全没有必要带巨大的汉字库来运行, 只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文 件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代 码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些 存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字 体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使 用少量汉字的图形编程能够提供极大方便。

    相对于绘制这些字体的J2ME函数是:
         首先,我们要通过工具来生成点阵字库的GB2312字模,然后在图像中绘制出来,下面我给出一些字体的字模, 废话少说,具体看例子吧。有啥不明白,或者需要探讨的,到uhua.3geye.net。上面有我的联系方式。   
      
       
       
         
       

         
       
      


      
       import javax.microedition.midlet.*;
    import javax.microedition.lcdui.Canvas;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Display;

    public class FontMIDlet extends MIDlet {
    public FontMIDlet() {
    }


    protected void destroyApp(boolean _boolean) throws
    MIDletStateChangeException {
    }


    protected void pauseApp() {
    }

    protected void startApp() throws MIDletStateChangeException {
    Display.getDisplay(this).setCurrent(new FontCanvas());
    }   
      
      

    char yi12[] = {
    /* 以下是 "1" 的 12点阵宋体 字模,24 byte */
    0x00, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x3C, 0x00,
    0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
    0x0C, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    char er12[] = {
    /* 以下是 "2" 的 12点阵宋体 字模,24 byte */
    0x00, 0x00, 0x3E, 0x00, 0x63, 0x00, 0x03, 0x00,
    0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00,
    0x63, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    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,
    };

    char song16[] = {
    /* 以下是 "宋" 的 16点阵宋体 字模,32 byte */
    0x02, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x04,
    0x81, 0x08, 0x01, 0x00, 0x7F, 0xFC, 0x03, 0x80,
    0x05, 0x80, 0x05, 0x40, 0x09, 0x20, 0x11, 0x10,
    0x21, 0x0E, 0x41, 0x04, 0x01, 0x00, 0x00, 0x00,
    };

    char ti16[] = {
    /* 以下是 "体" 的 16点阵宋体 字模,32 byte */
    0x10, 0x40, 0x18, 0x40, 0x10, 0x40, 0x20, 0x40,
    0x37, 0xFC, 0x60, 0xC0, 0xA0, 0xE0, 0x21, 0x60,
    0x21, 0x50, 0x22, 0x48, 0x24, 0x4E, 0x2B, 0xF4,
    0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x00, 0x00,
    };

    char zi24[] = {
    /* 以下是 "字" 的 24点阵隶书 字模,72 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x1C, 0x10,
    0x1F, 0xFF, 0xF0, 0x18, 0x00, 0x30, 0x18, 0xFF,
    0x10, 0x09, 0xC3, 0x90, 0x00, 0x3C, 0x00, 0x00,
    0x1C, 0x00, 0x3F, 0xFF, 0xFE, 0x7E, 0x0C, 0xFE,
    0x00, 0x1C, 0x04, 0x00, 0x1C, 0x00, 0x04, 0x3C,
    0x00, 0x03, 0xF8, 0x00, 0x00, 0xE0, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    char mo24[] = {
    /* 以下是 "模" 的 24点阵楷体_GB2312 字模,72 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00,
    0x30, 0x03, 0x0C, 0x20, 0x03, 0x04, 0x3C, 0x02,
    0x07, 0xE0, 0x02, 0x1C, 0x40, 0x02, 0x00, 0x40,
    0x03, 0xC0, 0x70, 0x7E, 0x1F, 0x98, 0x02, 0x08,
    0x10, 0x06, 0x0F, 0x90, 0x07, 0x88, 0x10, 0x0A,
    0xCB, 0xE0, 0x1A, 0x05, 0x00, 0x12, 0x01, 0x1E,
    0x22, 0x0F, 0xFE, 0x42, 0x32, 0x80, 0x02, 0x02,
    0x40, 0x02, 0x04, 0x60, 0x02, 0x0C, 0x30, 0x02,
    0x18, 0x1C, 0x02, 0x20, 0x0F, 0x02, 0x00, 0x00,
    };

    char guan48[] = {
    /* 以下是 "灌" 的 48点阵黑体 字模,288 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x38, 0x00,
    0x03, 0x00, 0x03, 0xC0, 0x38, 0x00, 0x07, 0x80,
    0x03, 0xC0, 0x38, 0x00, 0x07, 0xC0, 0x03, 0xC0,
    0x38, 0x00, 0x03, 0xF1, 0xFF, 0xFF, 0xFF, 0xFC,
    0x01, 0xF9, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x79,
    0xF1, 0xC0, 0x39, 0xFC, 0x00, 0x30, 0x01, 0xC0,
    0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xFF, 0xF0, 0xFF, 0xE0, 0x00, 0x00, 0xFF, 0xF0,
    0xFF, 0xE0, 0x00, 0x00, 0xE0, 0x70, 0xE0, 0xE0,
    0x0E, 0x00, 0xE0, 0x70, 0xE0, 0xE0, 0x1F, 0x80,
    0xE0, 0x70, 0xE0, 0xE0, 0x1F, 0xE0, 0xFF, 0xF0,
    0xFF, 0xE0, 0x07, 0xF0, 0xFF, 0xF0, 0xFF, 0xE0,
    0x01, 0xF0, 0xFF, 0xF1, 0xFF, 0xE0, 0x00, 0x60,
    0x08, 0x07, 0x00, 0x00, 0x00, 0x20, 0x1E, 0x03,
    0x80, 0x00, 0x00, 0x00, 0x1E, 0x03, 0x00, 0x00,
    0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF0, 0x00, 0x00,
    0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0xFF,
    0xFF, 0xF0, 0x00, 0x00, 0x7C, 0x03, 0x80, 0x00,
    0x00, 0x20, 0x7C, 0x03, 0x80, 0x00, 0x00, 0x70,
    0xFC, 0x03, 0x80, 0x00, 0x00, 0x71, 0xFF, 0xFF,
    0xFF, 0xE0, 0x00, 0x73, 0xFF, 0xFF, 0xFF, 0xE0,
    0x00, 0xF3, 0xBC, 0x03, 0x80, 0x60, 0x00, 0xE3,
    0xBC, 0x03, 0x80, 0x00, 0x01, 0xE1, 0x3C, 0x03,
    0x80, 0x00, 0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0,
    0x01, 0xC0, 0x3F, 0xFF, 0xFF, 0xE0, 0x03, 0xC0,
    0x3F, 0xFF, 0xFF, 0xE0, 0x03, 0x80, 0x3C, 0x03,
    0x80, 0x00, 0x07, 0x80, 0x3C, 0x03, 0x80, 0x00,
    0x0F, 0x80, 0x3C, 0x03, 0x80, 0x00, 0x0F, 0x00,
    0x3F, 0xFF, 0xFF, 0xF8, 0x1F, 0x00, 0x3F, 0xFF,
    0xFF, 0xF8, 0x1F, 0x00, 0x3C, 0x00, 0x00, 0x00,
    0x06, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    char guan64[] = {
    /* 以下是 "灌" 的 64点阵方正黄草简体 字模,512 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x03, 0xCF, 0xC0, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x1E, 0x07, 0xC0, 0x00,
    0x00, 0x00, 0x00, 0x03, 0xF8, 0x07, 0x80, 0x00,
    0x00, 0x04, 0x00, 0x03, 0xF8, 0x0F, 0x00, 0x00,
    0x00, 0x06, 0x00, 0x03, 0xF0, 0x18, 0x00, 0x00,
    0x00, 0x07, 0x00, 0x01, 0xF0, 0x30, 0x00, 0x00,
    0x00, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x00, 0x00,
    0x00, 0x03, 0xC0, 0x01, 0xF0, 0x00, 0x00, 0x00,
    0x00, 0x03, 0xE0, 0x00, 0x00, 0x06, 0x00, 0x00,
    0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00,
    0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00,
    0x00, 0x07, 0xE0, 0x00, 0x01, 0xFF, 0x00, 0x00,
    0x00, 0x0F, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00,
    0x00, 0x0C, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00,
    0x00, 0x08, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00,
    0x00, 0x08, 0x00, 0x0F, 0xF0, 0x07, 0xC0, 0x00,
    0x00, 0x00, 0x00, 0x3F, 0x40, 0x0F, 0xC0, 0x00,
    0x00, 0x00, 0x00, 0x18, 0x80, 0x3F, 0x80, 0x00,
    0x00, 0x00, 0x00, 0x01, 0x00, 0x7F, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x03, 0x0F, 0xFC, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x06, 0x1F, 0xF8, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x0E, 0x23, 0xF0, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x0E, 0xC3, 0xE0, 0x00, 0x00,
    0x00, 0x80, 0x00, 0x1F, 0x87, 0xC0, 0x00, 0x00,
    0x00, 0xC0, 0x00, 0x1F, 0x8F, 0x87, 0x80, 0x00,
    0x00, 0x70, 0x02, 0x0F, 0x9F, 0x0F, 0x80, 0x00,
    0x00, 0x7C, 0x02, 0x0F, 0xBE, 0x1C, 0xE0, 0x00,
    0x00, 0x3E, 0x04, 0x07, 0xFC, 0x18, 0xE0, 0x00,
    0x00, 0x3E, 0x04, 0x03, 0xF0, 0x1B, 0xC0, 0x00,
    0x00, 0x3E, 0x0C, 0x01, 0xE0, 0x1F, 0x80, 0x00,
    0x00, 0x1C, 0x08, 0x03, 0xC0, 0x1F, 0x00, 0x00,
    0x00, 0x18, 0x18, 0x07, 0x80, 0x7C, 0x00, 0x00,
    0x00, 0x18, 0x38, 0x0F, 0x01, 0xFC, 0x00, 0x00,
    0x00, 0x18, 0x30, 0x1F, 0x07, 0xDC, 0x00, 0x00,
    0x00, 0x30, 0x70, 0x3F, 0x1F, 0x0C, 0x00, 0x00,
    0x00, 0x30, 0x70, 0x7B, 0x38, 0x0C, 0x00, 0x00,
    0x00, 0x30, 0xE0, 0xF3, 0x60, 0x0C, 0x00, 0x00,
    0x00, 0x30, 0xE1, 0xE3, 0x00, 0x0E, 0x00, 0x00,
    0x00, 0x71, 0xC3, 0xE3, 0x00, 0x3E, 0x00, 0x00,
    0x00, 0x71, 0xC3, 0xC3, 0x00, 0x6E, 0x00, 0x00,
    0x00, 0x73, 0x83, 0xC3, 0x00, 0xCE, 0x00, 0x00,
    0x00, 0x77, 0x80, 0x07, 0x00, 0x9E, 0x00, 0x00,
    0x00, 0x77, 0x80, 0x07, 0x00, 0x9C, 0x00, 0x00,
    0x00, 0x7F, 0x00, 0x07, 0x00, 0x9C, 0x00, 0x00,
    0x00, 0x7F, 0x00, 0x07, 0x00, 0xBC, 0x00, 0x00,
    0x00, 0x7E, 0x00, 0x07, 0x00, 0xFC, 0x00, 0x00,
    0x00, 0x7E, 0x00, 0x07, 0x00, 0xFC, 0x00, 0x00,
    0x00, 0x7C, 0x00, 0x07, 0x00, 0xFF, 0x00, 0x00,
    0x00, 0x7C, 0x00, 0x06, 0x00, 0xDE, 0x00, 0x00,
    0x00, 0xFC, 0x00, 0x06, 0x00, 0x5C, 0x00, 0x00,
    0x01, 0xF8, 0x00, 0x06, 0x00, 0x78, 0x00, 0x00,
    0x00, 0xF8, 0x00, 0x0E, 0x00, 0x78, 0xF8, 0x00,
    0x00, 0xF8, 0x00, 0x0E, 0x00, 0xFF, 0xF8, 0x00,
    0x00, 0x78, 0x00, 0x0E, 0x01, 0xFF, 0xB0, 0x00,
    0x00, 0x70, 0x00, 0x06, 0x01, 0xF0, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    char matarray16k[] = {
    /* 以下是 "该" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08, 0x00,
    0x00, 0x0C, 0x03, 0xF0, 0x18, 0x50, 0x30, 0x90,
    0x11, 0x70, 0x11, 0xA8, 0x14, 0x58, 0x18, 0xB0,
    0x13, 0x70, 0x04, 0x8C, 0x03, 0x04, 0x00, 0x00,
    /* 以下是 "程" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0C, 0xFC,
    0x3C, 0x88, 0x08, 0x88, 0x0E, 0x70, 0xF8, 0x18,
    0x18, 0xE0, 0x1E, 0x20, 0x28, 0xF0, 0xC8, 0x20,
    0x08, 0x3E, 0x09, 0xC0, 0x08, 0x00, 0x00, 0x00,
    /* 以下是 "序" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x80, 0x00, 0x90, 0x0B, 0xE0,
    0x0C, 0x00, 0x0B, 0xF0, 0x08, 0x40, 0x10, 0x80,
    0x11, 0xFC, 0x1E, 0x88, 0x20, 0x80, 0x20, 0x80,
    0x40, 0x80, 0x80, 0x80, 0x01, 0x80, 0x00, 0x80,
    /* 以下是 "已" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0x40,
    0x00, 0xC0, 0x10, 0x80, 0x10, 0x80, 0x1F, 0x00,
    0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 0x10, 0x04,
    0x08, 0x06, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "集" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x02, 0x80, 0x04, 0x10, 0x07, 0xE0,
    0x0C, 0xE0, 0x17, 0x80, 0x05, 0xC0, 0x06, 0xB0,
    0x0B, 0x40, 0x08, 0x9C, 0x1F, 0xE0, 0x23, 0x40,
    0x05, 0x30, 0x09, 0x1C, 0x31, 0x00, 0x00, 0x00,
    /* 以下是 "成" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x03, 0x00, 0x01, 0x30, 0x01, 0x10,
    0x01, 0x00, 0x01, 0xC0, 0x1E, 0x80, 0x10, 0x90,
    0x12, 0x90, 0x1E, 0x60, 0x12, 0x60, 0x22, 0x60,
    0x26, 0x92, 0x45, 0x0A, 0x00, 0x06, 0x00, 0x00,
    /* 以下是 "小" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
    0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x18,
    0x11, 0x0C, 0x21, 0x04, 0x21, 0x00, 0x01, 0x00,
    0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "型" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x08, 0x03, 0x08, 0x1E, 0x28,
    0x0A, 0x48, 0x0F, 0xC8, 0x7A, 0x48, 0x0A, 0x08,
    0x12, 0x18, 0x21, 0x08, 0x01, 0x40, 0x07, 0x80,
    0x01, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0x00,
    /* 以下是 "汉" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x11, 0xF0,
    0x02, 0x20, 0x04, 0x20, 0x62, 0x40, 0x29, 0x40,
    0x10, 0x80, 0x11, 0x40, 0x22, 0x60, 0x64, 0x38,
    0x78, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "字" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x01, 0x00, 0x01, 0x10, 0x11, 0xF8,
    0x1E, 0x10, 0x20, 0xC0, 0x07, 0xC0, 0x00, 0x80,
    0x01, 0x38, 0x1F, 0xC0, 0x20, 0x80, 0x00, 0x80,
    0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00,
    /* 以下是 "库" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0xF0,
    0x0E, 0x80, 0x08, 0xF0, 0x0B, 0x00, 0x09, 0x40,
    0x0A, 0x78, 0x13, 0xC0, 0x10, 0x7E, 0x2F, 0xC0,
    0x20, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, 0x40,
    /* 以下是 "," 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
    0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00,
    /* 以下是 "可" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
    0x7F, 0x40, 0x00, 0x20, 0x07, 0x20, 0x19, 0x20,
    0x12, 0x20, 0x0E, 0x40, 0x00, 0x40, 0x00, 0x40,
    0x00, 0x40, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00,
    /* 以下是 "脱" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3D, 0x90,
    0x24, 0x80, 0x24, 0x70, 0x25, 0x90, 0x25, 0x20,
    0x35, 0xE0, 0x24, 0xA0, 0x24, 0xC0, 0x45, 0x42,
    0x4E, 0x22, 0x88, 0x3E, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "离" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x03, 0x00, 0x01, 0x30, 0x1F, 0xC0,
    0x00, 0xA0, 0x0F, 0xA0, 0x0A, 0xA0, 0x0F, 0xE0,
    0x09, 0x00, 0x03, 0xF8, 0x1E, 0x88, 0x17, 0xC8,
    0x14, 0x88, 0x10, 0x70, 0x10, 0x10, 0x00, 0x00,
    /* 以下是 "文" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00,
    0x00, 0x70, 0x07, 0x80, 0x18, 0x80, 0x01, 0x80,
    0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x04, 0xC0,
    0x38, 0x70, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "件" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x08, 0x40, 0x0C, 0x40, 0x08, 0x40,
    0x11, 0x40, 0x11, 0xF0, 0x32, 0x40, 0x50, 0x44,
    0x91, 0xF8, 0x12, 0x40, 0x10, 0x40, 0x10, 0x40,
    0x10, 0x40, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "的" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0C, 0x20,
    0x08, 0x40, 0x10, 0x48, 0x1E, 0xFC, 0x23, 0x0C,
    0x24, 0x8C, 0x3C, 0x48, 0x24, 0x08, 0x24, 0x08,
    0x3C, 0x08, 0x00, 0x38, 0x00, 0x18, 0x00, 0x00,
    /* 以下是 "支" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
    0x01, 0xE0, 0x0F, 0x00, 0x01, 0x00, 0x01, 0xC0,
    0x0E, 0x40, 0x08, 0x80, 0x06, 0x80, 0x01, 0x00,
    0x02, 0xC0, 0x0C, 0x78, 0x30, 0x1C, 0x00, 0x00,
    /* 以下是 "持" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20,
    0x08, 0x70, 0x3C, 0x20, 0x08, 0x3E, 0x0F, 0xD0,
    0x08, 0x1C, 0x3B, 0xF0, 0xC9, 0x10, 0x08, 0x90,
    0x08, 0x10, 0x18, 0x10, 0x00, 0x30, 0x00, 0x00,
    /* 以下是 "运" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x80,
    0x00, 0x00, 0x00, 0x78, 0x27, 0x80, 0x71, 0x80,
    0x21, 0x20, 0x22, 0xF0, 0x23, 0x10, 0x20, 0x00,
    0x5F, 0x80, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
    /* 以下是 "行" 的 16点阵楷体_GB2312 字模,32 byte */
    0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x38,
    0x10, 0x40, 0x24, 0x00, 0x04, 0x1F, 0x0B, 0xF0,
    0x18, 0x10, 0x28, 0x10, 0xC8, 0x10, 0x08, 0x10,
    0x08, 0x10, 0x08, 0x70, 0x00, 0x20, 0x00, 0x00,
    };


    void drawFont(Graphics g) {
    int i, j;

    drawmat(yi12, g,12, 50, 20, 0xFFFFFF);
    drawmat(er12, g,12, 50, 50, 0xFFFFFF);
    drawmat(dian12, g,12, 50, 80, 0xFFFFFF);
    drawmat(zhen12, g,12, 50, 110, 0xFFFFFF);
    drawmat(song16, g,16, 50, 130, 0xFF0000);
    drawmat(ti16, g,16, 50, 150, 0xFF0000);
    drawmat(zi24, g,24, 50, 180, 0x0000FF);
    drawmat(mo24, g,24, 50, 200, 0x00FF00);
    drawmat(guan48, g,48, 50, 250, 0x0000FF);
    drawmat(guan64, g,64, 50, 300, 0xFF0000);

    // for (i = 0; i < 15; i++) {
    // drawmat(matarray16k + i*32, g,16, 200 + i * 15, 200, 0xFFFFFF);
    // }
    // drawmat(matarray16k + 8*32, g,16, 200 + i * 15, 200, 0xFFFFFF);
    // drawmat(matarray16k + 9*32,g, 16, 200 + (++i) * 15, 200, 0xFFFFFF);
    // drawmat(matarray16k + 10 * 32, g,16, 200 + (++i) * 15, 200, 0xFFFFFF);
    // for (i = 18; i < 25; i++) {
    // drawmat(matarray16k + (i - 3) * 32, 16, 200 + i * 15, 200, 0xFFFFFF);
    // }
    }


    void drawmat(char[] mat, Graphics g,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)) == 0)) /*测试为1的位则显示*/
    {
    g.setColor(color);
    g.drawLine(x + i * 8 + k, y + j, x + i * 8 + k, y + j);
    // putpixel(x + i * 8 + k, y + j, color);
    }
    //else
    // g.setColor(0xFFFFFF);
    }
    }
    }
    }


    class FontCanvas extends Canvas {
    protected void paint(Graphics g) {
    g.setColor(0x0);
    g.fillRect(0, 0, this.getWidth(), this.getHeight());
    drawFont(g);
    }
    }

    }

      
      
       
       
         
       
                         
         
       
      
    复制代码

    源码下载:http://file.javaxxz.com/2014/10/11/040132234.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-2 11:16 , Processed in 0.431047 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表