sebbur
Messages postés39Date d'inscriptionlundi 9 mai 2016StatutMembreDernière intervention27 juillet 2016
-
11 mai 2016 à 16:42
sebbur
Messages postés39Date d'inscriptionlundi 9 mai 2016StatutMembreDernière intervention27 juillet 2016
-
5 juil. 2016 à 16:27
Bonjour à tous,
Je voulais dessiner des axes (x, y) dans une pictureBox et intégrer deux boutons de zoom (in/out) dans ma WinForm qui agissent donc sur cette pictureBox.
Voici l'extrait de code :
private void checkBox1_CheckedChanged(object sender, EventArgs e) { DessineSurBmpAxis(); pictureBox1.Invalidate(); } // Dessine sur la bitmap private void DessineSurBitmap() {
if (monImage == null) return;
using (Graphics gr = Graphics.FromImage(monImage)) { Rectangle rectDessin; rectDessin = new Rectangle(50, 75, 300, 200); gr.DrawRectangle(Pens.White, rectDessin);
rectDessin = new Rectangle(80, 120, 300, 400); gr.DrawEllipse(Pens.White, rectDessin);
Point P1 = new Point(100, 60); Point P2 = new Point(25, 350); gr.DrawLine(Pens.White, P1, P2);
} }
// Dessine sur la bitmap des Axes private void DessineSurBmpAxis() {
bmpAxis = new Bitmap(bmpAxis, rectImage.Size); using (Graphics grAxis = Graphics.FromImage(bmpAxis)) { using (Pen penAxe = new Pen(Color.Red, 4.0f)) { grAxis.DrawLine(penAxe, 0, bmpAxis.Height - 1024, bmpAxis.Width , bmpAxis.Height - 1024); grAxis.DrawLine(penAxe, 0 + 1024, 0, 0 + 1024, bmpAxis.Height);
} } }
Alors voilà mon problème. Dans un projet simple, le code fonctionne très bien et j'obtiens le résultat que je souhaite.
En revanche, quand j'intègre ce code dans un autre projet où ma pictureBox affiche une photo/vidéo dynamiquement (via une webcam par exemple) rien ne fonctionne. Je n'ai pas d'erreur mais les boutons de zoom n'ont aucun effet et la checkBox provoque une exception lorsque je change son état.
Je vous remercie par avance de votre aide et de vos réponses,
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179 5 juil. 2016 à 12:20
Bonjour,
1. Quelle est l'exception provoquée?
2. Si tu mets ton code dans une classe, tu la debug bien avec le projet simple, et lorsque tu l'utiliseras dans un autre plus complexe cela devrait fonctionner.
Bonne journée.
sebbur
Messages postés39Date d'inscriptionlundi 9 mai 2016StatutMembreDernière intervention27 juillet 2016 5 juil. 2016 à 13:24
Bonjour,
Tout d'abord je te remercie pour ta réponse.
En fait maintenant les axes s'affichent dans ma pictureBox, mais lorsque j'applique un dézoom sur mon image (le capteur de ma caméra a une résolution de 2048 px * 2048 px) les axes ne s'affichent plus correctement.
Je peux tracer une ligne dans la pictureBox et lorsque je trace cette ligne les axes apparaissent de manière aléatoire et ils ne restent pas affichés.
J'aurai voulu savoir comment je peux faire pour que les axes restent affichés dans ma pictureBox même après avoir appliqué un dézoom sur mon image.
Merci d'avance,
Sebbur
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179
>
sebbur
Messages postés39Date d'inscriptionlundi 9 mai 2016StatutMembreDernière intervention27 juillet 2016 5 juil. 2016 à 16:24
Si je comprends bien, test axes doivent rester fixe par rapport a ton picturebox. et ne pas changer de taille ni de position. (verticalement a gauche et horizontalement en bas.
et tu devras mettre aussi des boutons pour déplacement de l'image avec le zoom > 1.
Bonne journée
sebbur
Messages postés39Date d'inscriptionlundi 9 mai 2016StatutMembreDernière intervention27 juillet 2016 5 juil. 2016 à 16:27
J'ai dû mal m'exprimer désolé. J'aimerai justement que mes axes suivent mon zoom in/out lors de l'appuie sur le bouton. Actuellement mes axes semblent suivre mon zoom in/out mais une fois que j'ai appuyé sur un des deux boutons pour zoomer ou dézoomer, l'affichage n'est pas continuel et il est aléatoire.