如何把图片的紫色部分设为透明?请高手举个小程序例子!例如:picture1,picture2 怎样把picture2中的图片显示在picture1中,但picture2中的背景为紫色的部分去掉呢?用了好长时间也没有做对,请高手举个小程序例子!
解决方案 »
- 关于此功能的实现
- vb打包后安装不了?
- DTS问题(SQL与EXCEL之间转换)
- (急)光驱问题:检测得到,放入盘却读不了???(此贴与VB无关,请大家帮忙)
- 怎样使VB程序只允许运行一个例程?
- vb生成.exe文件,oracle运行时报告TNS错误:无法处理服务器名
- 大佬帮忙:API串口通迅,电脑自身串口及USB转串口执行无问题,但是MOXA卡出来的串口收不到数据
- 菜鸟跪求:怎样用VB编一个系统测控界面?
- VB6.0中的报表制作只能使用ADO的数据源,如果用DAO能行吗?
- 用VB如何将程序写入NT的服务中?以便NT关闭所有程序后仍可运行
- 显示、打印上下标问题?
- 鼠标指针颜色效果显示问题,请教高人!
(1) Picture1 <= Picture1 AND Mask
(2) Picture1 <= Picture1 AND (Original OR Mask)
Private Declare Function TransparentBlt Lib "msimg32" (ByVal hdcDest As Long, ByVal nXOriginDest As Long, ByVal nYOriginDest As Long, ByVal nWidthDest As Long, ByVal nHeightDest As Long, ByVal hdcSrc As Long, ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, ByVal crTransparent As Long) As Long
比如你要把“紫色”透明化处理,则最后参数传rgb(255,0,255),蓝色传rgb(0,0,255)等等
'将picture1的一部图像[甚至示被图片覆盖住的背景色]拷贝到picture2中,覆盖其全部空间,并
'将picture1中黑色部分作透明化处理
TransparentBlt Picture2.hdc, 0, 0, ScaleX(Picture2.Width, ScaleMode, vbPixels), ScaleX(Picture2.Height, ScaleMode, vbPixels), _
Picture1.hdc, 0, 0, ScaleX(Picture1.Width, ScaleMode, vbPixels), ScaleX(Picture1.Height, ScaleMode, vbPixels), vbBlack
End Sub