none
Crear máscara con dos imágenes

    Pregunta

  • Hola gente, gracias por entrar. Me gustaría saber si se puede hacer y como, un efecto de máscara.

    Tengo dos imágenes:

    La máscara:

    Y la imagen a tratar:

    Quedando como resultado en un picturebox esto:

    Muchas gracias!

    sábado, 12 de noviembre de 2016 23:06

Respuestas

  • Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim img As Byte() = New System.Net.WebClient().DownloadData("https://http2.mlstatic.com/S_942505-MLA25028844574_082016-Y.jpg")
            Dim bmp As New Bitmap(New System.IO.MemoryStream(img))
    
            Dim bmp2 As New Bitmap(bmp.Width, bmp.Height, Imaging.PixelFormat.Format32bppArgb)
            Dim g As Graphics = Graphics.FromImage(bmp2)
            Dim gp As New System.Drawing.Drawing2D.GraphicsPath
            Dim pu As System.Drawing.GraphicsUnit = GraphicsUnit.Pixel
            gp.AddEllipse(bmp2.GetBounds(pu))
            g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            g.SetClip(gp, Drawing2D.CombineMode.Intersect)
            g.DrawImage(bmp, 0, 0)
            g.Dispose()
    
            bmp.Dispose()
            BackgroundImage = bmp2
            BackgroundImageLayout = ImageLayout.Zoom
            BackColor = Color.Tan
            ClientSize = BackgroundImage.Size
        End Sub
    End Class
    

    • Marcado como respuesta SalvadorB lunes, 14 de noviembre de 2016 0:45
    domingo, 13 de noviembre de 2016 2:13

Todas las respuestas

  • Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim img As Byte() = New System.Net.WebClient().DownloadData("https://http2.mlstatic.com/S_942505-MLA25028844574_082016-Y.jpg")
            Dim bmp As New Bitmap(New System.IO.MemoryStream(img))
    
            Dim bmp2 As New Bitmap(bmp.Width, bmp.Height, Imaging.PixelFormat.Format32bppArgb)
            Dim g As Graphics = Graphics.FromImage(bmp2)
            Dim gp As New System.Drawing.Drawing2D.GraphicsPath
            Dim pu As System.Drawing.GraphicsUnit = GraphicsUnit.Pixel
            gp.AddEllipse(bmp2.GetBounds(pu))
            g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            g.SetClip(gp, Drawing2D.CombineMode.Intersect)
            g.DrawImage(bmp, 0, 0)
            g.Dispose()
    
            bmp.Dispose()
            BackgroundImage = bmp2
            BackgroundImageLayout = ImageLayout.Zoom
            BackColor = Color.Tan
            ClientSize = BackgroundImage.Size
        End Sub
    End Class
    

    • Marcado como respuesta SalvadorB lunes, 14 de noviembre de 2016 0:45
    domingo, 13 de noviembre de 2016 2:13
  • Muchas gracias! 

    PD: linda imagen :)

    lunes, 14 de noviembre de 2016 0:46