22146|38

210

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

基于LM3S图形驱动库开发之图形驱动库工具使用 [复制链接]

图形驱动库工具使用

上次我和大家一起分享了如何使用ti的图形驱动库的基元层来绘制基本的字符,图形。在这里我强和大家一起分享如何使用ti图形库提供的工具来生成自己的字体,和图像。

Ti提供的这些工具我们都可以在图形驱动库安装目录下的tools\bin文件夹中找到.包含了三个工具:ftrasterizemkstringtablepnmtoc。这三个工具分别用来生成驱动库可识别的字体,字符表,和转化一个netpbm格式的图片。这三个工具全部从命令行运行。

其中我使用过的就是ftrasterizepnmtoc

1ftrasterizeftrasterize可以生成图形驱动库可以识别的字体。下面我就以一个实际的例子来讲述如果使用ftrasterize

首先,从window安装目录,fonts这个文件夹里栲一个TTF的字体出出,连同ftrasterize放到一个文件夹。为了转换方便,我直接放到了C:\Documents and Settings\Administrator如下图:

打开window命令行。输入ftrasterize回车,如下:

我们就可以看到对这个工具以及一些参数的文字描述。

我们只需要在命令行输入ftrasterize –f alger –s 50 ALGER.ttf回车就以生成一个名字为fontalger50.c这个文件。

其中-s这个参数确定了生成的字体的大小。我们把生成的这个文件放到我们的工程中,

main里调用GrContextFontSet(&MyContext, &g_sFontalger50);设置字体。

  //写字符

  GrStringDraw(&MyContext,"cortex !",-1,40,120,true);

 

可以在lcd上看到:

在我的电脑上这种字体的显示为:

可以看出lcd上的字体和window下的字体显示是一至的。可以看出字体的生成很方便。

[ 本帖最后由 zhengjiewen 于 2010-11-24 21:13 编辑 ]

最新回复

楼主好像不逛这个论坛了? 还想看看楼主的触摸驱动移植的怎么样了  详情 回复 发表于 2015-4-9 09:56
 
点赞 关注(3)

回复
举报

210

帖子

0

TA的资源

一粒金砂(高级)

沙发
 



 

下面我介绍一下如何用pnmtocgimp生成驱动库可识别的图像。Pnmtoc也是一个从命令行运行的工具,可以把pnm 的图片转换成驱动库可以识别的格式。但是有一个问题就是我们平时接触得最多的是jpeg,但是pnmtoc不能直接识别jepeg.因此我们需要一个工具来把jpeg或其他格式的图片转换成pnm.ti的文档里推荐了三个软件gipm, NetPBM, ImageMagick.而我使用的是GIMPGIMP 是跨平台的图像处理程序。GIMP GNU 图像处理程序(GNU
Image Manipulation Program)
的缩写。包括几乎所有图象处理所需的功能,号称Linux下的PhotoShop。可以去官方直接下载windows版本:



 

http://www.gimp.org/。安装包也非常小巧。只有20M。下载之后无需注册,直接安装。安装好后在桌面出现如下图标:

 

双击打开。看到如下启动界面:

 

打开后界面如下:



 

如果要想转换一张图片到pnm。从文件->打开。打开一张图片。




 

图片默认的是rgb模式,要先把他改成索引模式。单击图像->模式->索引。出现如下对话框:

 

 

模式生成256bpp(bit per pixel)图像。可直接点转换。转换完成后存储它。注意拓展命改为pnm.我保存为了li.pnm(因为是李孝利。 )然后便可以运行pnmtoc输入入下命令:

 

 

 

 

 

 

[ 本帖最后由 zhengjiewen 于 2010-11-26 18:14 编辑 ]
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

板凳
 



  

回车生成li.c这个c文件。放到加到工程中。注意,在生成的c文件的前面加上#include
“grlib.h”
不然编译会报错。



 

生成的这个c文件里包含了一个驱动库可以识别的数组,默认名字为:const unsigned char g_pucImage[];要想在main函数里引用他,必须做extern const unsigned char g_pucImage[]声明。然后在主函数里写一句:

GrImageDraw(&MyContext,g_pucImage,0,0);意思就是从(00)点开始绘制g_pucImage这个图像。运行后LCD显示如下:

 

这就成功的使用驱动库显示了一张图片,是不是很简单?

接下来我再给大来介绍一下lmi-button.scm这个文件的使用。

 

这个文件在图形驱动库\tools\lmi-button目录下。这个一个gimp中的一个script宏。大家要问了这个有什么作用了。大家可以看下面这个界面:



 

这个ti的一个门安全锁的演示DEMO,被我移植到我的板子上了。大家看到的一个一个的蓝色按钮就是在gipm下使用lmi-button生成的。所以lmi_button是一个很使用的小工具。那么我们要怎么样在gimp中使用他呢?

 

首先我们要把这个文件复制到gimp安装目录\GIMP-2.0\share\gimp\2.0\scripts这个文件夹中。然后启动gimp.

可以看到如下菜单:



单击LMI_Button。弹出如下菜单:



 

通过这个菜单就可以定制我们需要的按钮的样式。其中宽度和高度以像素点为单位。Corner radius为这个按钮的圆弧半径。厚度的选择使生成的图片看起来有一定的厚度。如果这个要生成的图像按钮代表按下的状态,则选上“按下”这个选项。现在我配置一个按钮如下:

 

按照我上面讲的方法把它保存为pnm格式的图片,并用pnmtoc转换它。同样在main函数里调用GrImageDraw这个函数,可以看LCD上看到这个按钮:



当然,这里我给大家开了个玩笑,平时用到的按钮跟本没这么大。。为了让大家看得清楚,我才做这么大一个怪物出来。

ok,到现在为止,我和大家一起分享了从图形驱动库的介绍、底层驱动函数的编写,图形基元的绘制、以及驱动库本身提供的工具的使用。下一次我会给大家分享ti图形驱动库最华丽的一层也就是小工具层的使用,以及如何结合触摸屏来设置一个可触摸控制的界面。但是要期未考试了。。可能速度不是那么快哈。。多谢大家支持!



 

 







 





 

[ 本帖最后由 zhengjiewen 于 2010-11-26 18:28 编辑 ]

赞赏

1

查看全部赞赏

 
 
 

回复

2万

帖子

74

TA的资源

管理员

4
 

回复 板凳 zhengjiewen 的帖子

谢谢楼主分享
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

918

帖子

0

TA的资源

纯净的硅(中级)

5
 

回复 4楼 soso 的帖子

谢谢分享
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

6
 
我很喜欢大家一起相互交流的情景,这样可以取长补短,共同进步
 
 
 

回复

918

帖子

0

TA的资源

纯净的硅(中级)

7
 

回复 6楼 zhengjiewen 的帖子

GrContextFontSet(&MyContext, &g_sFontFont50);
怎么和fontalger50.c联系起来的呢?
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

8
 

回复 7楼 academic 的帖子

你可以进fontalger50.c看,可以找到tfont g_sfontalger50这个结构。传递的是指针,你可以把自己生成的字体加到建库的那个工程里,然后再重新建库。这样你直接调库就可以使用字体了。
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

9
 

回复 7楼 academic 的帖子

晕,才看到了,打错了,应该是GrContextFontSet(&MyContext, &g_sFontalger50);改正过来了,谢谢academic
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

10
 
自己顶。。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
请问中文字库生成后怎样使用?
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

12
 

汉字显示

我怎么用宋体库转换后,不能显示中文呢?
 
 
 

回复

210

帖子

0

TA的资源

一粒金砂(高级)

13
 

回复 12楼 hejiang1777 的帖子

现在ti的库暂时还不支持中文的
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

14
 

只有晕了

有没有办法让TI的图形库显示中文呢,我研究了一下他的字体显示函数,比较难看懂,最主要的是因为他的字体是经过他们的软件转换后的,所以感觉要想在TI图形库上显示中文,太难了,除非TI官方能提供这个功能了:(
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(中级)

15
 
快点讲讲小工具的使用,其他的都是些简单的。顶。。。。。
 
 
 

回复

126

帖子

0

TA的资源

一粒金砂(中级)

16
 
快点讲讲小工具的使用,其他的都是些简单的。顶。。。。。
 
 
 

回复

206

帖子

0

TA的资源

一粒金砂(高级)

17
 

pnm格式的图片有什么优势?

pnm格式的图片有什么优势??????
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

18
 

LM图形库显示不正常,帮我看看

SSD1963驱动LM图形库,显示的字体不正常,请看图片,在写X坐标时写到好远的地方去了,感觉象是拖尾,但实际不是的,显示图片时又是正常的,不会出来这种显示字的现象

IMAG0568.jpg (240.32 KB, 下载次数: 0)

显示LM GUI的图片

显示LM GUI的图片
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

19
 
不好意思,搞定了,驱动的问题,才写了一个像素点
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

20
 

谢谢

多谢分享
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表