去除图片背景函数GdiTransparentBlt
使用GdiTransparentBlt做图片透明效果时容易忽视的几个问题: 1、源场景和目标场景可以相同。 2、在作透明处理时,目标矩形与源矩形必须事先设置为相同大小。本人尝试结果:大小不同透明效果无法实现。 3、目标场景若为界面控件,背景颜色应与透明色不同,否则无法显示效果。 4、初学者尤其要注意该函数所用句柄为hdc,而并非hwd。 附:函数用法:
功能:执行颜色数据的一位块操作转换到一个像素矩形,从指定的源场景到目标设备场景中。
VB声明:Private Declare Function GdiTransparentBlt Lib "gdi32.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
返回值:成功,返回为TRUE;否则,返回FALSE.
参数: hdcDest 目标设备场景句柄 nXOriginDest 指定目标矩形的左上角X坐标,使用逻辑单位。 nYOriginDest 指定目标矩形的左上角Y坐标,使用逻辑单位。 nWidthDest 指定目标矩形的宽度,使用逻辑单位。 hHeightDest指定目标矩形的高度,使用逻辑单位。 hdcSrc 源设备场景句柄。 nXOriginSrc 源矩形的左上角X坐标,使用逻辑单位。 nYOriginSrc 源矩形的左上角Y坐标,使用逻辑单位。 nWidthSrc 源矩形的宽度,使用逻辑单位。 nHeightSrc 源矩形的高度,使用逻辑单位。 crTransparent RGB值,源位图中做透明处理的颜色。 例句: GdiTransparentBlt hBakgrdDC,ptForgSize.X,ptForgSize.Y,hFregrdDC,lngColorForeground (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |