我想把一个带 透明通道的bitmap作为前景贴到一个不带透明通道的背景bitmap上,试了几种方法 都不理想,包括
TransparentBlt(...),alphablend(...),还使用过maskdc 的方法,都不理想。
前两种方法把我的小的前景,拉伸到跟背景一样大;而且TransparentBlt(...),也不是真正的用alpha的值去画,
用maskdc,虽然不拉伸了但是,对于边缘是有渐进色的图,不能很好处理,
现在想来想去 想 直接得到pixel的alpha的值,通过计算来得到,但是发现 在wince下,似乎不是很容易就能得到alpha的值,看了一些资料,在pc上可以通过GDI+来得到,好像wince不支持gdi+,不知道版主和大侠们能不能给些提示什么的,我的带透明通道的bitmap是用Iconworkshop做出来的
------解决方案--------------------
你可以在PC上生成带Alpha通道的图片,32位,在CE上你通过创建两个CreateDIBSection,一个原图,一个与目标DC对应,取出原图图像象素,根据里边每个象素的alpha通道值决定是否把该象素赋到目标DC对应的DIBSection里,最终就可以实现无锯齿透明。