找回密码
 注册
搜索
查看: 1959|回复: 23

[讨论] 【Png图片显示问题——背景刷不掉】

[复制链接]
发表于 2009-10-27 22:54:33 | 显示全部楼层 |阅读模式
请指点下:
新建的图层放张png的背景图,在背景上显示小png图片,
问题:小png图片边缘却直接把墙纸显示出来了,怎么才能把小png图片的问题背景——墙纸刷掉 ?
 楼主| 发表于 2009-10-27 23:01:06 | 显示全部楼层
Up by myself.
点评回复

使用道具 举报

发表于 2009-10-28 09:44:02 | 显示全部楼层
背景都是要自己刷的。
点评回复

使用道具 举报

 楼主| 发表于 2009-10-28 13:36:43 | 显示全部楼层
那怎样才能把小图片边缘部分通透的杂色刷掉呢?
点评回复

使用道具 举报

 楼主| 发表于 2009-10-28 18:56:51 | 显示全部楼层
Up by myself again.
[em08]
点评回复

使用道具 举报

发表于 2009-10-28 19:08:20 | 显示全部楼层
void show_fixed_matrix(void)
{
        gdi_handle old_src_layer;
        gdi_image_abm_get_source_layer(&old_src_layer);
             // 将PNG选中框图片的透明层设置为layer0
        gdi_image_abm_set_source_layer(dm_get_layer_handle(0));

        ....(原代码)

        gdi_image_abm_set_source_layer(old_src_layer);
}

这样可以吗?
点评回复

使用道具 举报

 楼主| 发表于 2009-10-28 22:51:21 | 显示全部楼层
以下是引用december在2009-10-28 19:08:20的发言:
void show_fixed_matrix(void)
{
        gdi_handle old_src_layer;
        gdi_image_abm_get_source_layer(&old_src_layer);
                                                                                                 // 将PNG选中框图片的透明层设置为layer0
        gdi_image_abm_set_source_layer(dm_get_layer_handle(0));

        ....(原代码)

        gdi_image_abm_set_source_layer(old_src_layer);
}

这样可以吗?


谢谢,我试过了,还是刷不干净,见图:
<img src="attachments/dvbbs/2009-10/200910282253273499.jpg" border="0" onclick="zoom(this)" onload="if(this.width>document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />
点评回复

使用道具 举报

 楼主| 发表于 2009-10-28 22:54:43 | 显示全部楼层
怎样才能把小图标上的蓝底刷掉?期待解答~
点评回复

使用道具 举报

发表于 2009-10-29 08:23:30 | 显示全部楼层
只有对图层有充分的理解,才能对这个问题作答, 暗示一下: flattern !!!!

哈哈![em08]
点评回复

使用道具 举报

发表于 2009-10-29 08:47:01 | 显示全部楼层
你这个是音乐播放器的界面了,那么就不是修改show_fixed_matrix()函数了,你试着修改音乐播放器界面相应的地方吧:
// 将PNG选中框图片的透明层设置为layer0
gdi_image_abm_set_source_layer(dm_get_layer_handle(0));
点评回复

使用道具 举报

 楼主| 发表于 2009-10-29 09:18:38 | 显示全部楼层
噢,感谢各位。
我确实对图层了解的不够,那位能写一下这方面的介绍就好了
这个不是音乐播放器是IDLE;单独显示一个小图标是没问题的,可是png叠加就会出现上图的现象。
我再试试~[em01]
点评回复

使用道具 举报

发表于 2009-10-29 09:35:01 | 显示全部楼层
楼主真是好员工哦,加班到11:00还在发贴解BUG,哈哈!
点评回复

使用道具 举报

发表于 2009-10-29 12:37:20 | 显示全部楼层
可以画在不同的层上,大图alpha blending layer设wallpaper层,小图alpha blending layer设画大图的层。
也可以用flatten,大图画好后flatten到某一层上,画小图时alpha blending layer设这个层。
点评回复

使用道具 举报

发表于 2009-10-29 12:39:22 | 显示全部楼层
靠,抢我的分啦![em08]
点评回复

使用道具 举报

 楼主| 发表于 2009-10-29 14:03:26 | 显示全部楼层
以下是引用winclow在2009-10-29 12:37:20的发言:
可以画在不同的层上,大图alpha blending layer设wallpaper层,小图alpha blending layer设画大图的层。
也可以用flatten,大图画好后flatten到某一层上,画小图时alpha blending layer设这个层。



请问怎样设置 alpha blending layer ?
我的是MT6225 07B平台,在gdi_layer.c中我没找到相应的函数。
点评回复

使用道具 举报

发表于 2009-10-29 14:08:45 | 显示全部楼层
25平台比较新高的版本有设gdi_layer_set_alpha_blending_source_layer这个接口, 看来你只好用flatten了,flatten跨平台(cross-platform)[em14]
点评回复

使用道具 举报

 楼主| 发表于 2009-10-29 14:12:11 | 显示全部楼层
好的,谢谢 楼上~
点评回复

使用道具 举报

发表于 2009-10-29 17:19:43 | 显示全部楼层
就是gdi_image_abm_set_source_layer,设alpha blending layer。两个函数一样的
点评回复

使用道具 举报

 楼主| 发表于 2009-10-30 14:30:02 | 显示全部楼层
感谢关注该问题的各位……

使用gdi_image_abm_set_source_layer可以解决单张png图片的显示问题;

但png图片叠加到一起,就会出现上面png图片边缘有杂色出现(偏蓝色)。

-------继续求助-------
点评回复

使用道具 举报

发表于 2009-11-2 00:55:14 | 显示全部楼层
关注。。。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-6 20:51 , Processed in 0.050770 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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