详解 QT中QPF字库制作与旋转字体实现

移动开发
如果直接使用TTF或PFA/PFB。即让应用程序在显示的时候再计算点阵,最终的效果并不理想,会发现有些字大,有些字小,而且需要占用非常多的FLASH和内存,所以...先来看本文。

QTQPF字库制作与旋转字体实现  是本文要介绍的内容,Qt可以支持以下四种形态的字体格式:TrueType (TTF),Postscript Type(PFA/PFB),Bitmap Distribution Format fonts(BDF),Qt Prerendered Font(QPF)。

如果直接使用TTF或PFA/PFB。即让应用程序在显示的时候再计算点阵,最终的效果并不理想,会发现有些字大,有些字小,而且需要占用非常多的FLASH和内存,速度也有点慢,如果直接使用BDF,速度非常慢,而且需要占用比较多的FLASH和内存;使用QPF,速度和占用其它资源是最小的,因此我们的嵌入式产品中的QT软件都是采用QPF格式的。

另一方面,嵌入式应用中,QT界面在LCD中可能是采用旋转的形式显示,如7寸屏,而QT中旋转显示时,需要旋转字库的支持,否则将无法正常显示文字。所以针对旋转的应用需要利用makeqpf制作旋转的字库

字库制作

1、环境准备

需要安装好QT2及以上版本

编译好两个工具:qvfb,makeqpf

这两个工具都在$QTDIR/tools下, 编译即可

2、准备ttf字库文件

可以在自己的windows系统下发现ttf后缀的文件

此处作者采用网上下载的wqy-zenhei.ttf字库文件

将所要的文件拷贝到你的linux系统的$(QTDIR)/lib/fonts目录下

3、修改fontdir文件

  1. cd $(QTDIR)/lib/fonts  

打开fontdir,加入如下信息:

  1. wenquanyi wqy-zenhei.ttf FT n 75 160 u   
  2. wenquanyi wqy-zenhei.ttf FT n 50 160 u   
  3. wenquanyi wqy-zenhei.ttf FT n 50 180 u   
  4. wenquanyi wqy-zenhei.ttf FT n 75 180 u  

这些信息的含义如下:

  1. name1: 任意名   
  2. wqy-zenhei.ttf 文件名   
  3. FT: 表示是ttf文件   
  4. n : y表示是斜体,n表示正常   
  5. 50: 表示是正常,75表示是粗体   
  6. 160:表示是16点大小的字体,可根据需要修改   
  7. u:表示是unicode的  

4、字库生成

首先,执行qvfb,然后执行makeqpf.你会在 qvfb的显示窗内看到fontdir中每一行的信息。

在makeqpf界面中,点击要转换的字库,生成的新的.qpf文件就会存放到$(QTDIR)/lib/fonts/下了

5、旋转字体库的制作

使用带参数的方式执行makeqpf,如

  1. ./makeqpf -display Transformed:Rot90  

以上指令用于制作翻转90度的字库文件,制作其它的字库文件只需将270改为90,180,0等

注:在$(QTDIR)/lib/fonts/ 目录下的qpf字体文件中,文件名中带有t5,t10,t15等后缀的为旋转字体库,t5为旋转90度,t10为旋转180度,t15为旋转270度。如wenquanyi_160_50_t5.qpf 

小结:详解 QTQPF字库制作与旋转字体实现  的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2009-08-27 10:28:04

2011-06-28 15:18:45

Qt 单例模式

2011-06-30 15:51:39

2011-06-24 10:05:51

QT 对象 父对象

2011-06-30 16:08:05

Qt 字库 QPF

2011-06-14 11:48:38

Webkit QT

2011-06-24 09:39:05

2010-08-09 16:01:37

Flex字体

2011-07-04 15:48:57

Qt 桌面

2011-06-30 09:46:01

QT 显示视频 linux

2011-06-24 09:13:30

QT SDL

2011-06-22 15:42:18

QT 信号

2011-06-13 10:21:25

QT 信号 槽机制

2011-06-21 17:23:40

QT 编译

2011-06-13 09:04:39

QT Flash 交互

2011-06-24 14:17:58

Qt 容器类 QVector

2011-06-24 09:22:54

QT .pro文件 qmake

2011-06-24 15:16:33

Qt 插件

2011-06-29 17:20:20

Qt 内存 QOBJECT

2011-09-01 14:04:45

QT Webkit插件
点赞
收藏

51CTO技术栈公众号