硬汉嵌入式论坛

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

[emWin] 将透明图片绘制到存储设备里面,再次调用存储设备函数进行绘制的时候,图片就不透明

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2017-1-2 11:20:34 | 显示全部楼层 |阅读模式
比如这种方式绘制ARGB8888格式的图片到存储设备:
444444444.png

实际显示出来的透明背景就是黑色的,为什么是黑色的呢,因为这个是默认的背景色
,透明图片往存储设备里面绘制的时候,就是绘制到这个黑色背景上面的,所以实际显示
出来是黑色就不奇怪了。
回复

使用道具 举报

9

主题

113

回帖

145

积分

初级会员

积分
145
发表于 2017-1-6 10:53:27 | 显示全部楼层
硬汉, 请教一个问题,能不能在窗口管理器创建的窗口的WM_PAINT回调里显示地调用MEMDEV的API,
像下面这种用法:
……
WM_PAINT:
{
    hMEM = GUI_MEMDEV_Create(……);
    GUI_MEMDEV_Select(hMEM);
    GUI_Draw_Circle(…);
    GUI_MEMDEV_CopyToLCD(hMEM);
    break;
}

我这么用了,没任何反应。
是不是MEMDEV的API会与窗口管理冲突?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
 楼主| 发表于 2017-1-6 11:07:52 | 显示全部楼层

回 yanchao7788 的帖子

yanchao7788:硬汉, 请教一个问题,能不能在窗口管理器创建的窗口的WM_PAINT回调里显示地调用MEMDEV的API,
像下面这种用法:
……
WM_PAINT:
{
....... (2017-01-06 10:53) 
hMEM = GUI_MEMDEV_Create(……);
GUI_MEMDEV_Select(hMEM);
GUI_Draw_Circle(…);
GUI_MEMDEV_Select(0); //////////////////////加上这个。
GUI_MEMDEV_CopyToLCD(hMEM);
================
这种用法不太好,你可以仅在WM_PAINT消息里面调用GUI_MEMDEV_CopyToLCD(hMEM);
回复

使用道具 举报

9

主题

113

回帖

145

积分

初级会员

积分
145
发表于 2017-1-6 11:25:57 | 显示全部楼层
Hi, eric,
我在窗体创建函数里面调用这些:
hMEM = GUI_MEMDEV_Create(……);
GUI_MEMDEV_Select(hMEM);
GUI_Draw_Circle(…);
GUI_MEMDEV_Select(0);

然后在窗体的回调WM_PAINT消息里调用 GUI_MEMDEV_CopyToLCD(hMEM);,发现没有反应。

而在窗体创建函数里面调用:
hMEM = GUI_MEMDEV_Create(……);
GUI_MEMDEV_Select(hMEM);
GUI_Draw_Circle(…);
GUI_MEMDEV_Select(0);
GUI_MEMDEV_CopyToLCD(hMEM);

就可以正常显示了

也就是说,MEMDEV的API在窗体回调里面不起作用。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
 楼主| 发表于 2017-1-7 08:48:47 | 显示全部楼层

回 yanchao7788 的帖子

yanchao7788:Hi, eric,
我在窗体创建函数里面调用这些:
hMEM = GUI_MEMDEV_Create(……);
GUI_MEMDEV_Select(hMEM);
GUI_Draw_Circle(…);
....... (2017-01-06 11:25) 
这个变量hMEM是全局变量吧 ,在窗体创建的时候调用是可以的。
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
发表于 2018-5-21 18:23:56 | 显示全部楼层
所以有办法消除这种黑色吗,最近碰到了这个问题
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
 楼主| 发表于 2018-5-22 02:23:09 | 显示全部楼层
drifting1024 发表于 2018-5-21 18:23
所以有办法消除这种黑色吗,最近碰到了这个问题

你可以提前把要绘制的背景也绘制上。
回复

使用道具 举报

15

主题

56

回帖

101

积分

初级会员

积分
101
发表于 2018-5-22 10:16:46 | 显示全部楼层
eric2013 发表于 2018-5-22 02:23
你可以提前把要绘制的背景也绘制上。

我的内存设备要求有动态变化的,像官方的IMAGE_FLOW例子一样,这样就不行了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-16 15:23 , Processed in 0.525477 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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