Ayuda con picturebox en vb.net 2005

Resulta que estoy haciendo un programa en vb.net 2005 de una web cam que uno saca una foto y la manda a otro form donde aparece la captura de la foto, eso lo tengo listo.
Lo que necesito y no puedo encontrar, que cuando ya tengo la foto en un pictureBox haya alguna forma que con el mouse se seleccione un área de la foto y luego se muestre en otro picturebox, como una forma de vista previa para luego guardarla.
Sabes como hacer eso para seleccionar una parte de la imagen y se muestre esa selección en otro picture se lo agradezco mucho :) :) :)
Saluudos ^^

1 respuesta

Respuesta
1
Sinceramente nunca he hecho algo así pero me atrae mucho el reto y ayudarte. Lo que se me ocurre es un efecto visual. Lo que puedes hacer es una especie de resize a la figura inicial. Me explico, la figura inicial posee propiedades POR y Y. estas propiedades las puedes editar y seleccionar un área. Esa área seria un archivo el cual seria de diferente tamaño al original, y ese seria el que mostraras en el segundo picturebox. De todas maneras voy a documentarme para ver si hay una manera más fácil
Gracias por responderme ...
Mira yo no trabajo mucho en vb.net 2005 pero necesito hacer eso en ese lenguaje, la verdad no entendí mucho lo de resize...
Mira no se si esta clara lo que necesito, pero es básicamente el programa que aparece en esta página http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/435-recortar-imagen.htm pero yo lo necesito en vb.net 2005
Muchas gracias nuevamente
Excelente aporte a eso me refería en lo que te escribí lo que hace es un efecto visual. Dame tiempo para poder ver el código y orientarte en lo más posible.
Te recomiendo bajar el código y lo pruebes para que saquemos conclusiones juntos.
Ya lo baje... lo trate de pasar a visual basic .net 2005 pero la verdad es que no pude ... Si pudieras ver el código o ayudarme de verdad te lo agrareceria .
He estado algo ocupado estos días. Ya lo estoy viendo. Si me mandas el código que posees para poder ayudarte mass a fono.
Muchísimas gracias por ti tiempo y tu atención.
La verdad que encontré la respuesta en otra página, pero nuevamente te agradezco por tomarte el tiempo.
Muchísimas gracias
Saludos
De todas maneras ya me senté y prefiero dejarlo como apoyo a demás gente. Disculpa el retraso.
Imports
System. Drawing. Drawing2D
Imports
System. Drawing. Imaging
Public
Class Form1
'http://www.codeproject.com/KB/graphics/image_croppingVBNet.aspx
" Honor al que se lo merece. Esto esta en codeproject. Yo lo que hice fue entenderlo y realmente aprender también.
'SizeMode = StretcImage
'Esto es importante si no lo colocas la imagen sale como descuadrada.
'Esto lo colocas en las propiedades del PictureBoxOrigen
Dim cropX As Integer = 0
Dim cropY As Integer = 0
Dim cropWidth As Integer = 0
Dim cropHeight As Integer = 0
Dim oCropX As Integer = 0
Dim oCropY As Integer = 0
Dim cropBitmap As Bitmap
Public cropPen As Pen
Public cropPenSize As Integer = 1 '2
Public cropDashStyle As Drawing2D.DashStyle = Drawing2D.DashStyle.Solid
Public cropPenColor As Color = Color.Yellow
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
Try
If e.Button = Windows.Forms.MouseButtons.Left Then
cropX = e.X
cropY = e.Y
cropPen =
New Pen(cropPenColor, cropPenSize)
cropPen.DashStyle = DashStyle.DashDotDot
Cursor = Cursors.Cross
End If
PictureBox1.Refresh()
Catch exc As Exception
End Try
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
Try
If PictureBox1.Image Is Nothing Then Exit Sub
If e.Button = Windows.Forms.MouseButtons.Left Then
PictureBox1.Refresh()
cropWidth = e.X - cropX
cropHeight = e.Y - cropY
PictureBox1.CreateGraphics.DrawRectangle(cropPen, cropX, cropY, cropWidth, cropHeight)
' Pinta un rectangulo
PictureBox1. CreateGraphics. FillRectangle(Brushes. RosyBrown, cropX, cropY, cropWidth, cropHeight)
' Pinta y llena el rectangulo
End If
Catch exc As Exception
If Err.Number = 5 Then Exit Sub
End Try
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
Try
Cursor = Cursors.Default
Try
If cropWidth < 1 Then
Exit Sub
End If
Dim rect As Rectangle = New Rectangle(cropX, cropY, cropWidth, cropHeight)
Dim bit As Bitmap = New Bitmap(PictureBox1.Image, PictureBox1.Width, PictureBox1.Height)
cropBitmap =
New Bitmap(cropWidth, cropHeight)
Dim g As Graphics = Graphics.FromImage(cropBitmap)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
g.DrawImage(bit, 0, 0, rect, GraphicsUnit.Pixel)
PictureBox2.Image = cropBitmap
Catch exc As Exception
End Try
Catch exc As Exception
End Try
End Sub
End
Class

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas