去除图片背景函数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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...