RE:Quitar fondo a una imagen
Buenas,
prueba con lo siguiente:
Para poner un ejemplo, imaginamos que tenemos en un formulario un boton llamado "command1" y dos pictureBox "Picture1" y "Picture2". Especifiquemos la funcionalidad de cada uno:
Command1 -> Botón con imagen.
Picture1 -> Receptor de imagen con fondo blanco
Picture2 -> Receptor de imagen con fondo transparente (Es necesario el Picture1)
Ahora pon una imagen en Command1 y prueba con esto (Copialo en el form):
' Llamada a la API
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
' Evento click del botón
Private Sub Command1_Click()
Picture1.Visible = True ' Esta línea no la quites
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
' Copiamos la imagen del botón al pictureBox1 que hace de repositorio
Me.Picture1.Picture = Me.Command1.Picture
' Copiamos la imagen del picture1 al picture2 indicandole que el blanco actuará como máscara de color transparente
DoEvents
GdiTransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
Picture1.Visible = False ' Esta línea no la quites
End Sub
Un saludo y espero que te sirva