Bonjour à tous,
Je débute dans le développement C# et je fais une application utilisant une caméra.
Pour commencer, j'ai récupéré l'image de cette caméra pour l'afficher dans un PictureBox. Tout ceci est fait avec un thread qui récupère le tableau de pixels représentant l'image. Ce tableau de pixels est stocké dans une variable. J'affiche ensuite l'image dans le PictureBox.
--> Tout ceci est OK mais j'ai lu qu'il fallait passer par un delegate pour mettre à jour un contrôle à partir d'un thread. J'ai essayé mais j'ai une erreur alors je fais simplement dans mon thread :
J'ai un bon résultat avec ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part myPictureBox.Image = (Image)bmp; // bmp est le Bitmap récupéré par l'API de la caméra
Mon plus gros souci, c'est que je veux créer une deuxième fenêtre qui affiche elle aussi l'image de la caméra.
Pour cela j'ai créé un thread qui crée un bitmap avec le tableau de pixels qui a été mis à jour dans le thread de la première fenêtre. J'affiche ensuite l'image dans un PictureBox. Cette fenêtre est créée à partir de la première, je l'affiche en modal puis je la désalloue.
A l'éxécution, lors du frm.ShowDialog(), j'ai une erreur AccessViolation :
Lorsque j'enlève l'affichage de l'image ds la 2ème fenêtre (avec un delegate ou sans) je n'ai pas l'erreur. C'est lorsque j'utilise ma PictureBox que ça semble poser problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
Je ne sais pas comment résoudre ce problème, j'ai essayé lock mais je ne comprends pas trop le fonctionnement...
Pour résumer, j'aimerais afficher un tableau de pixels dans une PictureBox sur 2 fenêtres différentes.
Merci pour votre aide et désolé si ce message n'est pas très clair...
Partager