Dessiner, étirer un cadre à la souris sur une image

Résolu
adocris Messages postés 12 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 31 mai 2007 - 1 juil. 2006 à 02:04
adocris Messages postés 12 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 31 mai 2007 - 7 juil. 2006 à 10:00
Bonjour à tous,

J’espère un peu d’aide de votre part, voici mon problème :
Je dois réaliser une petite interface pour mon forum favori (photos de microscopie)
Cette apli. doit aider les membres à poster leurs observations dans un format défini.
J’utilise la librairie FreeImage pour les redimensionnements et les export. en jpg
J’aimerais ajouter la possibilité de recadrer une image (recadrer, pas redimensionner) en utilisant la souris et en étirant un cadre sur la photo avec une proportion définie (1.33 x 1)

Comment dessiner et étirer ce cadre avec la souris directement sur la photo (dans un conteneur Image ou Pict.Box) ???


Merci de votre aide
Chris

5 réponses

JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
3 juil. 2006 à 21:31
Autant pour moi, il s'agit bien de mousemove. En fait une combinaison. Ce que je te propose et que je viens de tester, c'est d'utiliser une image ou une picturebox (selon ton besoin) pour stocker ton image. C'est très fluide et ça marche impeccable.
Voici mon code, avec une image chargée dans image1 et une picturebox chargée au démarrage de l'application dans laquelle on place le contenu de image1. Si ton image est modifiée, il te faudra la stocker lors du mousedown dans une picture2, afin de pouvoir la rétablir à chaque mouvement de souris.

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If old_x "" Then old_x XIf old_y "" Then old_y Y


End Sub




Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button 1 Then Picture1.Picture Image1.Picture: Picture1.Line (old_x, old_y)-(X, Y), , B


End Sub




Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
old_x = ""
old_y = ""


End Sub

Jer
3
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
1 juil. 2006 à 12:50
Tu veux dire rétrécir, car cadrer c'est rétrécir. par contre je programme pas en VB6 donc pour le code je peux te donner du VB.Net si tu saurais le retranscrire.

Redman
0
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
2 juil. 2006 à 16:14
utilises les variables x et y dans l'événement mousedown
ajoute 2 variables old_x et old_y
A chaque passage dans ta procédure, efface ton carré avec old_x et old_y et retrace avec x et y

Jer
0
adocris Messages postés 12 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 31 mai 2007
2 juil. 2006 à 22:16
Merci pour vos réponses rapides !


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>


Redman :


Il s’agit bien de réaliser un re-cadrage, c.à.d utiliser une nouvelle portion de l’image (sans changer sa résolution)


Pour ceci j’aimerais réaliser un rectangle de sélection à la manière des prog. de dessin genre Paint ou Photoshop.


A propos de  .net je viens d’installer 2005 express mais je n’y connais encore rien du tout !


 


Jer :


Je vois bien comment dessiner un rectangle à la souris sur l’image, mais comment l’effacer ???


En principe l’utilisateur click et relâche le bouton une fois le cadre tracé (mais le cadre doit être constamment redessiné)


Comment vois-tu la gestion de MouseDown, j’avais plutôt l’idée que c’est dans MouseMove que l’action se passerait ?


 


Au passage (c’est pas indispensable) Est-ce qu’il existe des contrôles (ocx ou autres) permettant d’utiliser un rect. de sélection avec poignée de redimensionnement ?


 


Merci d’avance pour le coup de main


Chris
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adocris Messages postés 12 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 31 mai 2007
7 juil. 2006 à 10:00
Merci  Jer !


C’est parfait (il faudra juste que j’adapte une proportion fixe pour le cadre : 1.33 x 1)


J’avais finalement résolu le problème autrement, en utilisant un Shape sur l’image, déplacement à la souris et étirement avec un Slider … 


Mais ta soluce me convient beaucoup mieux


A+



Chris
0
Rejoignez-nous