OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7474|回复: 6

emWin以skinning方式实现BMP图片位图皮肤的源代码

[复制链接]

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-6-3
在线时间
25 小时
发表于 2016-6-3 09:47:32 | 显示全部楼层 |阅读模式
  emWin的控件显示是由默认的控件绘制函数完成,但emWin凭借其skinning功能可以非常方便的实现自定义控件绘制函数,利用自定义控件绘制函数我们可以非常方便的实现所有控件的BMP位图皮肤,而且支持整幅图片贴图,不需要对整幅图片进行切片分解,功能非常强大。
image001.png

  如上图所示,(x0,y0)为整幅图片的显示坐标,(x1,y1)(x2,y2)emWin为控件自动生成的剪切显示坐标,我们只需要调用GUI_DrawBitmap()函数在(x0,y0)显示整幅图片即可,emWin会自动剪切显示出该控件的位图皮肤,非常便捷。
  以整幅图片实现emWin位图皮肤可以大大减轻控件贴图的工作量,非常的方便;如果把每个控件对应的图片先切片分解下来,然后再转换成C文件,最后再贴图到控件上面去,那样工作量将是非常恐怖的;保守估计贴图工作效率提高10倍以上。

image003.png


image005.png
附件里面的SKIN_xxxx.cemWin的自定义控件绘制函数,也就是绘制出什么样的控件完全是靠这个函数,可以根据自己的需要修改代码:
demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116.rar (4.13 MB, 下载次数: 1027)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2016-3-16
在线时间
48 小时
发表于 2016-6-4 14:06:27 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2019-7-2
在线时间
11 小时
发表于 2020-2-2 21:05:31 | 显示全部楼层
我确定了,你应该就是CSDN那个大神,只不过那里的代码无法下载了,终于在这里找到你了,多谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-12-19
在线时间
5 小时
发表于 2020-5-20 16:38:28 | 显示全部楼层
STM32F407报内存不足怎么处理?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-9-6
在线时间
3 小时
发表于 2020-11-29 17:24:00 | 显示全部楼层
谢谢分享!十分感谢
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2019-4-25
在线时间
13 小时
发表于 2021-10-15 16:17:42 | 显示全部楼层
贴主在吗?

参考你的例程代码,只做进度条PROGBAR控件皮肤时,图片无法显示出来(程序的其它功能都正常运行),单独使用GUI_DrawBitmap(winBMP->normal, x0, y0)可以显示图片。这个是怎么原因?你能帮忙分析一下吗
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2016-11-29
在线时间
32 小时
发表于 2021-10-21 09:53:51 | 显示全部楼层
LuckyXiao 发表于 2021-10-15 16:17
贴主在吗?

参考你的例程代码,只做进度条PROGBAR控件皮肤时,图片无法显示出来(程序的其它功能都正常 ...

你买它的那种屏才行。第一你存图片的内存不够。第二你显示图像的速度不够,。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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