zoukankan      html  css  js  c++  java
  • [open source]点阵字体产生器发布

    [open source]点阵字体产生器发布

     

    转载时请注明出处:http://blog.csdn.net/absurd

     

    N年以前写的一个点阵字体产生器,主要是给自己用的,花了一天时间就搞定了,后来没有时间整理,代码比较乱,不过还算比较稳定。后来放到网上去了,下载量还不小,常常有一些朋友向我索要源代码,最近又收几个网友的来信。干脆放到这里吧,不过代码有点乱。有兴趣的朋友可以到这里下载

     

    ZTGen

    =========================================================

     

    ZTGen是什么

    =========================================================

     

    ZTGen是一个点阵字体产生工具,它可以把Windows系统中的字体,转换成点阵字

    体的数据。输出的结果可以按照ANSI排序,也可以按照Unicode排序。

     

    ZTGen的用途

    =========================================================

    常常会有这样的情况:

     

    在开发嵌入式系统时,需要显示不同大小或字体的汉字。显然,对于嵌入式系统,

    不太可能使用矢量字体,而点阵字体,不同大小的字体不能简单的缩放。

     

    另外,对一个小系统,也不需要完整的字体,往往只要几十个,甚至几个就够了。

     

    一般,我们采用的方法是,自己准备点阵字体的数据,在显示汉字时,把这些数据

    写入显存就行。

     

    这时又存在另外一个问题,由于是不完整的字库,不能简单的用汉字的内码去找到

    对应的字体数据,如果逐个比较,又费时间。比较好的方法就是把字体数据排序,

    查找时用二分查找,这样可以大大提高查找效率。

     

    ZTGen就是为以上问题提供一个完整的解决方案:

     

    首先,把你指定的汉字转换成你指定字体、大小的字体数据。

    然后,把这些字体数据按ANSI或者Unicode排序。

    最后,提供一组函数去查找和显示汉字,并带有VC/DOS/directfb的演示代码。

     

     

    ZTGen如何使用

    ========================================================

    使用很简单:

     

    选择字体:点击"字体"按钮,在字体对话框里选择字体、大小、效果等。

    准备汉字:把你要显示的汉字拷到左上角的编辑框内。

    选择排序方式:按ANSI或者Unicode排序。

    产生数据:点击"产生"按钮。

     

    右上角是单个汉字的文本显示效果。如:

    0100               11                

    0100               11               

    2108     11        11        11     

    3ffc     111111111111111111111111   

    2108     11        11        11     

    2108     11        11        11     

    2108     11        11        11     

    2108     11        11        11     

    2108     11        11        11     

    3ff8     1111111111111111111111     

    2108     11        11        11     

    0100               11               

    0100               11               

    0100               11               

    0100               11               

    0100               11               

    0000                   

     

    左下角是字体数据。如:

    Unicode排序:

    {

           EX_FONT_CHAR_VAL("")

           EX_FONT_UNICODE_VAL(0x4e2d)

           {0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x3f, 0xfc, 0x21, 0x08,

    0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3f, 0xf8, 0x21, 0x08,

    0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00}

    }

    ANSI排序:

    {

           EX_FONT_CHAR_VAL("")

           EX_FONT_ANSI_VAL(0xd6d0)

           {0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x3f, 0xfc, 0x21, 0x08,

    0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x3f, 0xf8, 0x21, 0x08,

    0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00}

    }

     

    最后就是按这些数据与显示函数集成起来。

     

    ZTGen工作原理

    =======================================================

    因为Windows显示汉字时,对程序员来说,就是把汉字的写到Device Context中。

    我们只从Device Context中把这个汉字对应的像素的值读出就行了。

     

    报告错误

    ======================================================

    如果你发现有什么错误,请麻烦您告诉我一下:xianjimli@hotmail.com

     

    屏幕截图:

     

     fontgenfontdemo
  • 相关阅读:
    Comparable与Comparator
    【源码】String类、jdk1.6subString内存泄漏、字符串拼接几种区别、
    JAVA整型包装类的缓存策略
    通过tomcat把项目http请求转为https请求
    git rebase总结及git使用规范
    记一次对象序列化不打印value值为null的属性问题
    Layui-Tables+PHP分页
    Python操作字符串-截取IP地址
    命令行启动VMware虚拟机
    bat批处理备份桌面所有文档
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167846.html
Copyright © 2011-2022 走看看