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 ^^
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