硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2192|回复: 16
收起左侧

[emWin] emwin位图能够部分显示吗

[复制链接]

15

主题

56

回帖

101

积分

初级会员

积分
101
发表于 2018-4-16 22:55:45 | 显示全部楼层 |阅读模式
求铁男翻牌,是这样的:
我要用emwin做个汽车仪表
现在卡在了不规则的曲线速度表上
之前我想过用异形进度条来实现(在此多谢异形进度条的原创作者),仿照范例自定义了绘制函数,直接刷整张背景图,然后emwin自动剪切到进度条上
不过这种方法不太适合我,跑起来能看到明显的刷屏、闪屏等
而且这样太浪费资源
切图多切一个像素点就是3字节/行,更何况这种直接刷整张背景图呢

所以后来我打算用最基础的切图、贴图实现
但是速度表刻度值太多、假设有200km/h,总不可能切两百个一刻度出来,慢慢拼出来吧,这样不论对美工还是我来说都是不太实际的
所以我先切了几个大刻度来测试下

之前我想过用剪切区搭配拼图来完成,当时高兴了好久,认为这是个可行的办法
后来测试发现,剪切区好像对窗口不起作用(我把emwin函数分为基于窗口控件(framewin,window)的函数和基于背景层的函数)
无论我怎么剪切,window上并没有什么反应(可能是因为剪切区是针对背景层的函数???不知道)

而且我发现,像GUI_DispStringAt、GUI_DrawBitmap等等这些函数在窗口中都不起作用,你想显示字符,必须创个TEXT,你想显示图片,必须先创IMAGE
所以我认为这些函数有背景层和窗口层之分

扯远了。。。。。

我就是想问,像我这种异形速度表,如果采用贴图的方法可以实现吗(当然不是按最小刻度切几百张的这种方法)
我之前想的是在IMAGE控件内设置一个合适的剪切区,这样只有剪切区的图片看得到,也就相当于实现了速度表的不同值
然而后面错的离谱
现在一点办法都没了

如果铁男看到或者其他各位有经验的同行看到,能给我个思路就好,谢谢了,感谢感谢
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-16 22:58:37 | 显示全部楼层
这是速度表盘

速度表盘

速度表盘
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-17 00:41:49 | 显示全部楼层
楼主你写内容稍多,看着我有点吃力,方便的话,直接告诉我你想实现什么样的效果就行,二楼的图片看的不太清楚,方便的话,直接发个下面这种类型的图片即可
014909c7gzc7jiedprjgte.jpg



回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 09:04:16 | 显示全部楼层
工程原因我要打马赛克,还请见谅喏,就是两边的速度表怎么实现啊

总体框图

总体框图
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-17 10:25:17 | 显示全部楼层
drifting1024 发表于 2018-4-17 09:04
工程原因我要打马赛克,还请见谅喏,就是两边的速度表怎么实现啊

emWin做这个太麻烦了,你应该用Crank或者Altia。
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 10:42:00 | 显示全部楼层
可是要求就是用这个做,有好办法吗
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 10:43:07 | 显示全部楼层
只能贴图吗,如果只能贴图有没有尽量少贴图的办法
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-17 11:05:03 | 显示全部楼层
drifting1024 发表于 2018-4-17 10:43
只能贴图吗,如果只能贴图有没有尽量少贴图的办法

你这个贴图不是关键,关键是你怎么刷动态更新。
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 11:11:44 | 显示全部楼层
eric2013 发表于 2018-4-17 11:05
你这个贴图不是关键,关键是你怎么刷动态更新。

数据改变了,发个消息然后隐藏或者显示IMAGE应该可以吧
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-17 11:40:40 | 显示全部楼层
drifting1024 发表于 2018-4-17 11:11
数据改变了,发个消息然后隐藏或者显示IMAGE应该可以吧

我想到了一个办法,找个美工把这个黄色的滚动条做成透明的图片,然后使用emWin的函数,可以设置透明和不规则效果。
QQ截图20180417113822.png
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 11:43:41 | 显示全部楼层
eric2013 发表于 2018-4-17 11:40
我想到了一个办法,找个美工把这个黄色的滚动条做成透明的图片,然后使用emWin的函数,可以设置透明和不 ...

好的,我看看,滚动条是透明的希望能做出来
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 15:11:47 | 显示全部楼层
eric2013 发表于 2018-4-17 11:40
我想到了一个办法,找个美工把这个黄色的滚动条做成透明的图片,然后使用emWin的函数,可以设置透明和不 ...

存储设备XY坐标不能太大是为什么啊,太大的话直接就没有效果了
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-17 15:30:06 | 显示全部楼层
eric2013 发表于 2018-4-17 11:40
我想到了一个办法,找个美工把这个黄色的滚动条做成透明的图片,然后使用emWin的函数,可以设置透明和不 ...

行不通啊,首先Mask设备用的是8bpp,我的黄色显示出来失真了
还有就是我的图片150*297,但是存储设备开不了这么大,我把坐标设大了之后Punch out就只显示背景,没有叠加的效果
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-18 09:20:54 | 显示全部楼层
drifting1024 发表于 2018-4-17 15:30
行不通啊,首先Mask设备用的是8bpp,我的黄色显示出来失真了
还有就是我的图片150*297,但是存储设备开 ...

帮顶,剩下只能靠你自己多做测试了
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-18 09:40:56 | 显示全部楼层
eric2013 发表于 2018-4-18 09:20
帮顶,剩下只能靠你自己多做测试了

好的,谢谢了
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2018-4-18 10:10:37 | 显示全部楼层
eric2013 发表于 2018-4-18 09:20
帮顶,剩下只能靠你自己多做测试了

还有一个问题,存储设备可以开多大是有什么决定的啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-18 10:15:44 | 显示全部楼层
drifting1024 发表于 2018-4-18 10:10
还有一个问题,存储设备可以开多大是有什么决定的啊

GUIConf.C文件中,你配置的动态内存大小。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-19 22:00 , Processed in 0.052349 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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