您尚未登录。

楼主 # 2022-09-09 18:36:19

dgtg
会员
注册时间: 2017-11-08
已发帖子: 236
积分: 225.5

awtk,求助fb采用ARGB8888格式时,半透明问题

大家好,请教个问题啊。
之前用awtk做的项目,GUI层在fb1用的RGB565格式,视频层fb0。GUI叠加在视频层上,用colorkey透过去。
现在问题是colorkey只是一种色,不能实现半透明的效果,会有如下图的现像:
gui.png

现在送样机,被客户退回了,糗大了...被老板批了...
所以,现在想用ARGB8888来做,测试了一下:
1.电脑制作一张全透明的png图片
2.win_cctv = window_create(NULL,0,0,0,0);
3.widget_use_style(win_cctv,"全透.png");
4.然后在win_cctv上面画图标和字符...

但显示的结果让我一头雾水,发现awtk显示出来的是在前一个界面的基础上叠加全透的png,根本就没有全透到底下的视频层!!
晕了...
猜测,应该是awtk用前一个界面为背景,将全透的png融合进去了....前一个界面没有透明,所以融合的结果也是一点没透明!
我测试过,如果是直接对fb1写ARGB8888的数据是可以半透过去的!说明fb1驱动是没问题了。

请教各位,有没有做过类似的应用?
如何处理视频层与UI层的叠加问题?
awtk此情况下,应该怎样用啊?
谢谢!

离线

#1 2022-09-09 23:10:59

海石生风
会员
注册时间: 2019-07-02
已发帖子: 163
积分: 263

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

离线

楼主 #2 2022-09-13 09:32:32

dgtg
会员
注册时间: 2017-11-08
已发帖子: 236
积分: 225.5

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

谢谢回复!
我看了下,发现mutable_image是通过软件将视频层的GUI层融合的?
这样的话不是很适合啊, 我的平台双核A7,有8路摄像头图象需要同时显示,如果软件拼图融合,太耗时间了!分辨率1024x600。

离线

#3 2022-09-13 12:23:03

海石生风
会员
注册时间: 2019-07-02
已发帖子: 163
积分: 263

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

参照上面的文档说明,即使不用mutable_image控件,也要定义WITH_LCD_CLEAR_ALPHA宏,以支持背景色为透明的混色算法。

最近编辑记录 海石生风 (2022-09-13 12:23:27)

离线

楼主 #4 2022-09-13 14:48:13

dgtg
会员
注册时间: 2017-11-08
已发帖子: 236
积分: 225.5

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

海石生风 说:

参照上面的文档说明,即使不用mutable_image控件,也要定义WITH_LCD_CLEAR_ALPHA宏,以支持背景色为透明的混色算法。

谢谢!
仔细看了awtk文档,发现我需要的是这个:
”2. 直接刷硬件方法
如果嵌入式支持多线程的话,可以使用一条线程支持刷到其中一个硬件图层中,然后另外一条线程给 AWTK 运行 GUI。

这个方法的好处是视频的刷新率不会受到 AWTK 的帧率影响,就算 AWTK 的 GUI 很卡,也不会导致视频卡顿的问题,如果硬件图层支持各种格式的透传的话,例如视频数据为 YUV 的话,就可以省下 YUV 格式转换的消耗问题,因为 mutable_image 控件只支持 RGBA8888, BGRA8888,RGB888,BGR888,RGB565,BGR565。“

但是,我在awtk_config.py里面定义了COMMON_CCFLAGS=COMMON_CCFLAGS+' -DWITH_LCD_CLEAR_ALPHA' ,
重新编译运行,结果是一样的...
全awtk代码收索关键字WITH_LCD_CLEAR_ALPHA,也没看到有使用到。是不是我哪里搞错了?

离线

#5 2022-09-13 18:29:47

海石生风
会员
注册时间: 2019-07-02
已发帖子: 163
积分: 263

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

' -DWITH_LCD_CLEAR_ALPHA' 这里后面最好要留个空格。

两年前就有WITH_LCD_CLEAR_ALPHA这个宏了,你的代码没那么旧吧。

离线

楼主 #6 2022-09-14 09:48:28

dgtg
会员
注册时间: 2017-11-08
已发帖子: 236
积分: 225.5

Re: awtk,求助fb采用ARGB8888格式时,半透明问题

海石生风 说:

' -DWITH_LCD_CLEAR_ALPHA' 这里后面最好要留个空格。

两年前就有WITH_LCD_CLEAR_ALPHA这个宏了,你的代码没那么旧吧。

加一空格也是一样...
awtk我已经更新到1.5的了

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn