您的位置首页生活百科

vb 怎么图片合并?

vb 怎么图片合并?

你什么意思,让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才叫功能全面,AlphaBlend和ColorMatrix都支持。TransparentBlt的用法和BitBlt或者PaintPicture差不多,唯一注意的是最后一个参数,它要求你指定透明色,即图像中应该被滤掉的颜色。你的GIF需要做一个处理,因为真正的系统中并不存在“透明”这种颜色,因此你需要把把GIF透明正困的部分换成一种不常用的颜色(保证图片中其它部分没有这个颜色),然后把这个颜色指定给TransparentBlt的最后一个参数就可以了。 ————————————————————————TransparentBlt,你就可以理解为一个睁唤PaintPicture,不过它对于源图像中你指定的颜色不予绘制,当然绘制到目标上面的时候不予绘制的那部分就保持了原来的样子,这样就实现了透明的效果。很多2D游戏很常用这个API的。