VB 如何将png图片透明叠加到底图上

picture1中加载底图,picture2中加载png图,设置透明度128,利用AlphaBlend函数将picture2中的图像内容混合到picture1中,最后保存picture1中的图像。
虽然成功实现了两幅图像的叠加,但问题是:picture2中加载的png是无背景的,采用AlphaBlend混合之后,却把picture2中的背景色给叠加到picture1中了,这是不需要的。采用什么方法能正确实现png透明叠加到底图上呢?

第1个回答  2014-01-23

楼主看看我的这个在VB6中用PNG图片绘图的例子。

不明白你说的“透明度128”是什么意思,你把PNG加载到Picture2中,它就没有透明特性了。


追问

AlphaBlend函数中有透明度参数0-255. 255代表不透明。你这个程式,没有透明度参数设置呢?如果图片框是隐藏的话,好像不奏效?

追答

没有透明参数的调整。
仅按图片自身各像素的透明度进行混合。

对于“隐藏的PictureBox”,好象用GDI或GDI+的API,都是不能奏效的吧……

追问

画上去的图片,保存底图时,画上去的内容没有随底图一起被保存,还是底图的原来的样子,等于没用的呀!

追答

你的把PNG图片的内容叠加到Picture1上,在绘制的时候,Picture1必须是可见的才行嘛。
还有,是保存 Picture1 的 Image属性,不是保存它的 Picture属性。
如果你保存时传的是Picture属性,随便你用什么方法混合上去的,都只是原图吧。

本回答被提问者采纳
相似回答