首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

使用PaintPicture拷贝图片时,怎么让源图黑色不拷贝过来,就是说黑色透明

2012-01-23 
使用PaintPicture拷贝图片时,如何让源图黑色不拷贝过来,就是说黑色透明?需要拷贝的图片中黑色部分想作为透

使用PaintPicture拷贝图片时,如何让源图黑色不拷贝过来,就是说黑色透明?
需要拷贝的图片中黑色部分想作为透明色,在PaintPicture中不拷贝过来,怎么弄啊,谢谢

[解决办法]
恐怕你要明白图像蒙板的道理了!
[解决办法]
设置接收图像控件的maskColor属性为黑色试试。
[解决办法]
要命,pictureBox没有这个属性。我什么都没说。
[解决办法]
使用TransparentBlt这个API可以透明贴图,里面有个参数是指定透明颜色的

定义:
Private Declare Function TransparentBlt Lib "msimg32.dll " (ByVal hdc As Long, ByVal t As Long, ByVal t As Long, ByVal t As Long, ByVal t As Long, ByVal hdc As Long, ByVal t As Long, ByVal t As Long, ByVal t As Long, ByVal t As Long, ByVal uint As Long) As Long

例子:
Private Declare Function TransparentBlt Lib "msimg32.dll " (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Picture1.AutoSize = True
'API uses pixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
End Sub
Private Sub Picture2_Paint()
'If we don 't call DoEvents first, our transparent image will be completely wrong
DoEvents
TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
End Sub


上面的例子将PICURE2贴到PICTURE1上,指定白色为透明(就是不贴)
楼主自己改吧
[解决办法]
8错,将来可能用到,顶!

热点排行