none
Recortar imagen

    Pregunta

  • Hola, tengo la siguiente situacion:

    Resulta que necesito desplazar el Panel dentro del Picturebox para poder ir recortando la imagen del respectivo Picturebox

    Esta es la llamada a la funcion

    Private Sub FrmPrueba_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Me.PictureBox2.Image = CropImage(Me.PictureBox1.Image, Me.Panel1.Location.X - Me.PictureBox1.Location.X, Me.Panel1.Location.Y - Me.PictureBox1.Location.Y, Me.Panel1.Size.Width, Me.Panel1.Size.Height)
    End Sub

    Esta es la funcion:

    Private Function CropImage(ByRef img As Bitmap, ByVal cropX As Integer, ByVal cropY As Integer, ByVal cropWidth As Integer, ByVal cropHeight As Integer) As Bitmap
            Dim rect As New Rectangle(cropX, cropY, cropWidth, cropHeight)
            Dim cropped As Bitmap = img.Clone(rect, img.PixelFormat)
            Return cropped
        End Function

    La cuestion es que no se me actualiza el PictureBox2 para poder ver reflejado el recorte del Panel mientras muevo el Panel

    Ademas de que no se me actualiza, me lanza el error de "Memoria insuficiente" en la linea "2" del desarrollo de la Funcion.

    Gracias de antemano!

    Espero sus respuestas


    • Editado Axel.st miércoles, 8 de febrero de 2017 18:23
    miércoles, 8 de febrero de 2017 17:55

Respuestas

  • Ya lo solucione! El problema era que el Picturebox1 estaba en modo StretchImage, y no modificaba el tamaño del PictureBox1.Image. Por lo que hice un resize del PictureBox1.Image cambiandole el tamaño por el tamaño del Picturebox1. Entonces ahora cuando llamo a la funcion CropImage, el rectangulo a recortar va a tener las mismas proporciones segun el tamaño del Picturebox1.Image.

    El error "Memoria insuficiente" se debia a que el tamaño a recortar no estaba incluido en el tamaño del Picturebox1.Image, justamente porque no hacia el resize del PictureBox1.Image.

    Eso es todo! Espero que a alguien le sirva 


    • Editado Axel.st jueves, 9 de febrero de 2017 12:51
    • Marcado como respuesta Axel.st jueves, 9 de febrero de 2017 12:52
    jueves, 9 de febrero de 2017 12:49