烽火社区

标题: 【STM32F7-DISCOVERY 试用笔记】STEMWIN篇-位图显示 [打印本页]

作者: 毕兵    时间: 2015-10-15 09:18 PM
标题: 【STM32F7-DISCOVERY 试用笔记】STEMWIN篇-位图显示

本篇将演示如果在STemwin上显示图片,不过有别于系统读取SD内的JPG/PNG等后缀的图片。

图片以代码的形式存在,然后STemwin对图片进行重绘,用过汉字字库的应该知道,两者原理类似!

下面将详细讲解如何在STM32F7Discovery的LCD上显示社区的LOGO:

[attach]33498[/attach]

 

这里要用到STemwin的一个小工具“BMPCVT",其作用是将图片转化为数组,界面如下:

 

[attach]33499[/attach]

 

点击”file“--”open“打开社区logo图片

[attach]33500[/attach]

 

然后点击”Image“--"Convert to" --"Best paletee",即可生成数组,这里我把它保存为“iclogo.h”文件。

[attach]33501[/attach]

[attach]33502[/attach]

 

下面开始对STemwin代码进行编写。

打开昨天的hello ickey工程文件,将iclogo.h文件放入任一包含过路径的文件夹内。

在”BASIC_HELLOWorld.c"文件内包含”iclogo.h“,编译后的工程如下所示:

[attach]33503[/attach]

 

对位图的重绘需要用到GUI_DrawBitmap函数,该函数的原型如下:

void GUI_DrawBitmap(const GUI_BITMAP * pBM, int x, int y),

三个参数分别为图片的地址,以及绘图的起始坐标。这里我们把图片放在LCD的中心位置。

代码如下:

[attach]33504[/attach]

 

将程序下载进开发板后即可看到效果:

[attach]33505[/attach]

 

接着演示一个挺有用的函数:GUI_DrawBitmapEx

该函数作用是做图片进行放大或缩小。STM32F7的LCD的像素为480*272,在正常情况下,超过该项目的图片都将显示不全,如下所示,我们将展示一下STM32f7的显示:

 [attach]33506[/attach]

 

此图片转化为位图后的大小为 636 * 402,超过STM32F7的显示范围.

[attach]33507[/attach]

 

 试用次函数GUI_DrawBitmapEx(&bm1,30,0,0,0,650,650); 将该图缩放0.65倍,效果如下:

[attach]33508[/attach]


作者: ddos110119    时间: 2016-1-6 01:42 PM
楼主试试从TF卡读取BMP  显示到LCD试试,我这儿一直不成功,JPG的可以




欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2