Clone d'une partie d'image dans un picturebox a partir du positionnement effectué par l'utilisateur
bonjour,
l'idée est de permettre à un utilisateur
1) de choisir une image dans sa bibliothèque et de l'afficher dans un picturebox
2) de choisir une partie de l'image avec son curseur
3) de lui indiquer la partie sélectionnée avec un rectangle en pointillé.
4) de cloner cette partie sélectionnée et de la mettre dans un deuxième picturebox pour sauvegarde
après près de trois semaines de test , recherche et essai j'arrive a résoudre les trois premières parties.
mais la quatrième donne une image complétement décalée par rapport au cadre sélectionné.
et la je sèche lamentablement.
si quelqu'un peut me donner une explication, elle sera la bienvenue.
voila le code en cause:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Private Sub PictureBox2_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseDown
souris_deb_X = e.X
souris_deb_y = e.Y
PictureBox2.Refresh()
End Sub
Private Sub PictureBox2_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseUp
souris_fin_X = e.X
souris_fin_Y = e.Y
If souris_fin_X - souris_deb_X = 0 Then Exit Sub
Dim newImage = New Bitmap(PictureBox2.Image)
' entourer la partie selectionnee par user
Dim g As Graphics = PictureBox2.CreateGraphics()
Dim RecCoul As Pen = New Pen(Color.Blue, 2)
Dim Rectsource As New Rectangle(souris_deb_X, souris_deb_y, souris_fin_X - souris_deb_X, souris_fin_Y - souris_deb_y)
RecCoul.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot
g.DrawRectangle(RecCoul, Rectsource)
Dim RectsourceNEW As New Rectangle(souris_deb_X, souris_deb_y, PictureBox1.Width, PictureBox1.Height)
'rectangle apparait comme demandé par user
' Clone de la partie correspondant au rectangle
Dim NewImage2 = newImage.Clone(RectsourceNEW, newImage.PixelFormat)
newImage.Dispose()
Dim FicSor = Application.StartupPath & "\Temp1.jpg"
PictureBox1.Image = NewImage2
PictureBox1.Image.Save(FicSor)
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
PictureBox1.Visible = True
End Sub |
merci d'avance
Cropping picture with vbnet
Bonjour,
Si je comprend bien, il suffit de chercher sur Google avec le mot cle: "cropping picture with vbnet", et on a les resultats suivant (avec des exemples a charger). Je pense que cela devrait correspondre a ce que vous recherchez.
http://www.dotnetheaven.com/article/...e-using-vb.net
http://www.vb-helper.com/howto_2005_crop_picture.html
Deux exemples parmi d'autres a tester.
A+
JLuc01