vb 怎么图片合并?

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:28:56
有2个PICTUREBOX
不同的图,不同的大小
如何合并在一起?
其中P2是透明的GIF图,用PS处理过了
不能用PaintPicture函数
这个函数在合并了以后,P2会出现白框,也就是合在一起后没有透明了
算了。。。实在说不清楚,我上图吧
2个PICTURE
P1的图是黑色,全黑
P2的图是黄色的园,这图我用PS处理成透明的了,也就是不会有白色边框了,存放在P2里面
但是用相关的函数合并放到P3里面
就会变成下图中那个样子了,黄色的园的白色边框又出来了

你什么意思,让P2的透明部分滤掉然后叠加在前面的图上面吗?

方法很多,最简单的方式是使用GDI的TransparentBlt函数。

或者用两次BitBlt进行位运算也行。或者MaskBlt也行。

以上API的用法都可以在MSDN上查到,其中下面两个的VB声明可以在VB6的API浏览器中找到,前面TransparentBlt的我在这里给个声明吧:

Public Declare Function TransparentBlt Lib "msimg32" (ByVal hDestDC As Long, _
ByVal xDest As Long, _
ByVal yDest As Long, _
ByVal nWidthDest As Long, _
ByVal nHeightDest As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal nWidthSrc As Long, _
ByVal nHeightSRC As Long, _
ByVal crTransparent As Long) As Long
——————————————————————

TransparentBlt从WinNT开始就已经被支持了,算是很老的API,要搞新的甚至可以用GDI+,那里面的DrawImage才