none
Bordes apixelados en picturebox circular RRS feed

  • Pregunta

  • Hola gente.

    Estoy haciendo una vista de perfiles de empleados usando pictureboxes, los hago aparecer en forma circular... Como la lista de contactos de WhatsApp, pero noto que los bordes de cada picturebox circular están algo apixelados, si la imagen se hace más grande se nota más aún, el código que utilizo es el siguiente.

    Public Sub PictureOval(ByVal Pic As PictureBox)
        Dim Gph As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath()
        Gph.AddEllipse(0, 0, Pic.Width - 3, Pic.Height - 3)
        Dim rg As Region = New Region(Gph)
        Pic.Region = rg
    End Sub

    lunes, 5 de junio de 2017 12:46

Todas las respuestas

  • Tu mejor opción quizá sea pintar un borde del mismo color del fondo del picturebox

    Public Class Form1
        Dim bmp As Bitmap
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim wc As New System.Net.WebClient
            Dim datos As Byte() = wc.DownloadData("https://i.ytimg.com/vi/kWK-Ka2II0w/maxresdefault.jpg")
            wc.Dispose()
            bmp = Image.FromStream(New System.IO.MemoryStream(datos))
            PictureBox1.BackColor = Color.Bisque
        End Sub
    
        Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
            Dim pic As PictureBox = DirectCast(sender, PictureBox)
    
            e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            Dim Gph As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath()
    
            Gph.AddEllipse(0, 0, pic.ClientSize.Width - 3, pic.ClientSize.Height - 3)
            e.Graphics.SetClip(Gph, Drawing2D.CombineMode.Replace)
            e.Graphics.DrawImage(bmp, 0, 0, pic.ClientSize.Width, pic.ClientSize.Height)
            e.Graphics.DrawPath(New Pen(Color.Bisque, 5) With {.Alignment = Drawing2D.PenAlignment.Outset}, Gph)
    
        End Sub
    End Class
    

    lunes, 5 de junio de 2017 15:55