8780|16

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince 5.0下支持png格式图片的透明显示么? [复制链接]

wince 5.0下支持png格式图片的透明显示么?我的程序用到了带alpha通道的png图片,想显示透明的效果,但是在wince5.0的手机上不能正常显示,我们自己定制ce5内核生成sdk后也不能正常显示,是不是缺少哪些选项呢?还是wince本来就缺少GDI+的原因呢?

最新回复

问题已经解决了,我用的手机开发商提供的库,她也提供了GDIPLUS.dll,不过我没有用,我用了他们库中提供的CxImage类,不知道是不是codeproject上的例子里用到的CxImage一样!源码网址是:http://www.codeproject.com/KB/graphics/cximage.aspx有兴趣的可以研究一下! 感谢各位对帖子的关注!  详情 回复 发表于 2009-11-23 13:09
点赞 关注

回复
举报

61

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
PNG的透明效果,在CE6.0下才开始正式应用。

所以CE5.0要支持,可能不行!也只是可能,没有去试。
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谁能给个确切答案啊?说明为什么的!急等,急等结账!
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
看看你的 设备之不支持AlphaBlend ,如果不支持 就要加入AlphaBlend组件支持,或者用 CxImage。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
用png图片的话,本质上是需要通过IImage的codec解码成bitmap后才能做Alphablend.那么解码后的bitmap有没有alpha通道决定了最后透明效果能否实现。由于楼主没有说明你的实现,我只能就几种情况分析一下:
如果解码是你用IImage实现的,那么你要确认你解码出来的bitmap是32位而不是16位的,CE提供了几个函数像 SHLoadImageFile之类只能解码出16位的,所以肯定是不行的。我没有试过CE5上IImage API能否解出32位的bitmap(CE6肯定是可以的),如果不行的话,那就是解码器有问题,解码器是可以自己实现的,所以理论上你可以自己写一个嵌到系统里去,当然你也可以用开源的解码库来直接解成32位的bitmap
有了32位的bitmap,理论上你就可以用AlphaBlend来实现透明效果了,这个应该不会有大的问题。


 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
to ruritanian:
   我是通过IImage的CreateImageDecoder(pStram,DecoderInitFlagNone,&pDecoder)创建了一个解码,然后用CreateNewBitmap(imageInfo.Width, imageInfo.Height ,PixelFormat32bppRGB, &pBitmapImage)转成bitmap,都没提示失败,但是在Draw的时候不能正常显示,会根据上面函数的第三个参数不同的值产生差异,但均不能正常显示!不知道为什么,怎么解决?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
在网上找到有提供的gdiplus.lib的想在wince5.0上用gdi+实现png图的显示,结果现在才搞清楚,wince5.0没有gdiplus.dll所以再有gdiplus.lib也没用,绕了这么大的弯路,看来还是回到老路上用IImage吧!但是IImage好像对png的解码有问题,至今也没有找到解决办法,已经搞了好几天了,哪位大侠知道的请不吝赐教,先谢过了!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

8
 
IImage完全可以。
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

9
 
有什么问题呢?先说清楚啊
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
系统加了ALPHABLEND组件,IImage就可以解透明通道的png了,wince5.0也可以,直接draw就可以了.
要不就是用CxImage,不过速度也是不敢恭维.
手机上如果没有添加 ALPHABLEND, 那用IImage就不行,还是用CxImage吧.
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
用libpng试试
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
{0};
                UINT nFramecount;

                pDeco
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
我用CxImage好象也不能透明
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

14
 
lz的问题可以加精啊,学习学习
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

15
 
如果楼主是做应用的话,可以把PNG转成32位的bmp,然后用AlphaBlend,这个比较简单,省去了png的解码.

另32的图片需要预先Pre Mulit alpha,,我有工具,,有需要的可以留mail
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

16
 
我用的手机开发商提供的库,她也提供了GDIPLUS.dll,不过我没有用,我用了他们库中提供的CxImage类,不知道是不是codeproject上的例子里用到的CxImage一样!源码网址是:http://www.codeproject.com/KB/graphics/cximage.aspx有兴趣的可以研究一下!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

17
 
问题已经解决了,我用的手机开发商提供的库,她也提供了GDIPLUS.dll,不过我没有用,我用了他们库中提供的CxImage类,不知道是不是codeproject上的例子里用到的CxImage一样!源码网址是:http://www.codeproject.com/KB/graphics/cximage.aspx有兴趣的可以研究一下!
感谢各位对帖子的关注!
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表