查看: 309|回复: 1
打印 上一主题 下一主题

【STM32F7-DISCOVERY 试用笔记】STEMWIN篇-位图显示

[复制链接] qrcode

28

主题

62

帖子

159

积分

注册会员

Rank: 2

积分
159
楼主
跳转到指定楼层
发表于 2015-10-15 09:18 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

 

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

 

 

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

 

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

 

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

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

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

 

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

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

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

代码如下:

 

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

 

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

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

 

 

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

 

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

84

帖子

26

积分

新手上路

Rank: 1

积分
26
沙发
发表于 2016-1-6 01:42 PM | 只看该作者
楼主试试从TF卡读取BMP  显示到LCD试试,我这儿一直不成功,JPG的可以
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表