`
wuhua
  • 浏览: 2111921 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于点阵字库在J2ME的实现。

    博客分类:
  • J2ME
阅读更多

 

http://www.3geye.net/?3/viewspace-2837

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

相对于绘制这些字体的J2ME函数是:
首先,我们要通过工具来生成点阵字库的GB2312字模,然后在图像中绘制出来,下面我给出一些字体的字模,
废话少说,具体看例子吧。有啥不明白,或者需要探讨的,到wuhua.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);
}
}

}

 

分享到:
评论

相关推荐

    j2me点阵字库

    2. **字符映射**:每个字符在字库中都有一个唯一的编码,如ASCII或Unicode。开发者需要建立一个映射表,将字符编码与对应的点阵数据关联起来,以便快速查找并渲染字符。 3. **渲染引擎**:点阵字库的显示通常需要...

    J2ME实现画图程序

    在这个J2ME实现的画图程序中,我们主要关注的是如何在移动设备上利用Java Micro Edition(J2ME)框架创建一个简单的画图应用。J2ME是Java平台的一个子集,专门用于嵌入式设备,如手机和PDA。在这个程序中,核心功能...

    J2ME 实现的 UrlEncode编码

    J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码

    j2me实现手机QQ源代码

    在这个项目中,我们探讨的是如何使用J2ME技术来实现手机上的QQ应用程序。手机QQ作为一款流行的即时通讯软件,它的实现涉及到网络通信、数据加密、用户界面设计等多个关键领域,通过分析其源代码,我们可以深入理解...

    j2me 实现抛物线的两种方法

    本文将深入探讨两种在J2ME中实现抛物线的方法。 首先,我们要了解抛物线的基本原理。抛物线是物体在重力作用下自由落体运动轨迹的一种理想化模型,其轨迹是由初速度、发射角度以及重力加速度决定的。在二维空间中,...

    j2me实现mvc的框架源码

    描述中的重复部分"j2me实现mvc的框架源码"进一步强调了这是关于J2ME平台上的MVC框架实现,可能意味着这个框架是专门为J2ME环境优化的,可能包含了针对资源有限的移动设备的性能优化。 **标签解析** 标签"j2me实现...

    用J2ME实现播放一段视频

    以下是你需要知道的关于如何在J2ME中实现视频播放的关键知识点。 1. **理解J2ME环境**: Java ME是Java的一个轻量级版本,设计用于嵌入式设备,如早期的手机和平板电脑。它包括几个配置和 profiles,如MIDP...

    J2ME实现超级玛丽源码

    在J2ME实现超级玛丽的过程中,以下几个关键知识点是必不可少的: 1. **图形渲染**:游戏的核心部分是画面的绘制和更新。J2ME提供了低级别的图形API,如`Graphics`类,用于在Canvas上绘制图形。开发者需要通过这个...

    j2me 实现拼图 一共三个类

    在本文中,我们将深入探讨如何使用Java 2 Micro Edition (J2ME) 实现一个拼图游戏。这个项目由三个核心类组成,旨在为移动设备提供一个简单的拼图游戏体验。J2ME 是一种轻量级的Java平台,主要用于开发在嵌入式设备...

    j2me实现视频播放

    "j2me实现视频播放"这一主题涉及到利用J2ME技术实现在这些设备上播放视频的功能。下面将详细讨论实现这个功能所需的关键知识点。 1. **J2ME基础知识**: - J2ME由KVM(Java虚拟机)和几个配置及 profiles 组成,如...

    J2ME实现俄罗斯方块

    本文将探讨如何使用Java Micro Edition (J2ME) 平台来实现这一经典游戏,主要关注特殊炸弹砖块的实现、游戏难度的选择以及游戏初始阶段的砖块随机生成机制。 首先,我们要理解J2ME的基础。J2ME是一种Java平台,主要...

    J2ME实现范例

    在本“J2ME实现范例”中,我们将深入探讨J2ME的基础知识及其在实际应用中的运用,帮助你在后续的开发工作中更加得心应手。 1. **J2ME架构**: J2ME包含配置(Configurations)和框架(Profiles),如MIDP(Mobile ...

    J2ME实现坦克大战工程包

    在J2ME实现中,游戏逻辑可能涉及以下几个关键点: - **图形渲染**:使用MIDP的Canvas类来绘制游戏场景,包括坦克、地图、子弹等元素。 - **游戏循环**:通过线程控制游戏的主循环,处理用户的输入、更新游戏状态并...

    j2me实现3D效果

    当我们谈论“j2me实现3D效果”时,这意味着我们要在这些小型设备上创建具有三维视觉效果的游戏或应用。3D编程对于任何平台来说都是一项复杂的技术,但在资源受限的J2ME环境中,这更是一个挑战。 首先,要理解J2ME中...

    j2me 实现打电话功能

    在移动设备领域,Java 2 Micro Edition(J2ME)是一种广泛用于开发移动应用的平台,尤其在功能手机时代占据重要地位。标题“j2me 实现打电话功能”表明我们将探讨如何利用J2ME技术来实现手机的基本通话功能。描述中...

    A算法使用j2me实现

    根据提供的文件信息,我们可以深入探讨A*算法在J2ME平台上的实现方法和技术要点。首先,需要明确的是,A*算法是一种广泛应用于路径查找和图遍历中的算法,它能够找到从起点到终点的最短路径。而在本例中,我们关注的...

    用J2ME实现简单电子邮件发送功能

    用J2ME实现简单电子邮件发送功能 用J2ME实现简单电子邮件发送功能

    j2ME 关于j2me的相关资料

    关于j2me的相关资料 ublic class Person implements KSerializable { private String _name; private String _answer; private String _userid;

    J2ME实现手机名片夹

    在移动通信领域,J2ME(Java 2 Platform, Micro Edition)是一种广泛应用于手机和其他小型设备的Java编程环境,它允许开发者创建能够在不同设备上运行的应用程序。本文将深入探讨如何利用J2ME技术实现一个手机名片夹...

    J2ME 画布实现中文输入

    在Java Micro Edition (J2ME) 平台上开发移动应用时,由于资源限制,往往需要进行一些巧妙的设计来实现特定功能。"J2ME 画布实现中文输入"这一主题,就是针对在J2ME环境下如何创建一个自定义的中文输入系统进行探讨...

Global site tag (gtag.js) - Google Analytics