[Capture] Capturer plusieurs image en boucle dans un programme

Signaler
Messages postés
6
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
24 mai 2010
-
Messages postés
2
Date d'inscription
dimanche 9 décembre 2007
Statut
Membre
Dernière intervention
21 juin 2010
-
Bonjour la communauté,

Je tiens avant toutes choses d'ores et déjà remercier toute la communauté csharpfr pour tout ce qu'elle a déjà fait pour moi sans le savoir.

D'habitude, je me débrouille très bien tout seul avec les exemples que j'ai mais là, je piétine sur un exemple tellement simple que j'en suis presque à m'en arracher les cheveux.

Voila mon problème : je souhaite tout simplement faire un programme qui enregistre des images d'un flux vidéo en boucle. Je débute en C# et aussi avec DirectX mais au début ce la me semblais facile à réaliser :

Capture c = new Capture(Filters.VideoInputDevices[0],Filters.AudioInputDevices[0]);
c.PreviewWindow = new PictureBox();
c.FrameCaptureComplete += new Capture.FrameCapHandler(FrameCaptureComplete);
List ImageCollection = new List();

private void CaptureFrames()
{
    for ( int i = 0; i < 10; i++)
    {
        c.CaptureFrame();
    }
}

private void FrameCaptureComplete(PictureBox Frame)
{
    ImageCollection.Add(Frame.Image);
}


Ce programme qui parrait si simple ne fonctionne pas du tout. En fait, il lance 10 fois la méthode c.CaptureFrame mais il ne pas qu'une seule fois par la méthode FrameCaptureComplete.

Quelqu'un pourrait me dire comment fonctionne la méthode CaptureFrame afin que je puisse modifier mon code pour qu'il fonctionne.

Merci à tous.

Cordialement,

Christophe Sevin.

1 réponse

Messages postés
2
Date d'inscription
dimanche 9 décembre 2007
Statut
Membre
Dernière intervention
21 juin 2010

Bonjour,

Je pense qu'il faut que tu rajoute un sémaphore(ou une temporisation)dans la boucle de la fonction "CaptureFrames" pour ne pas relancer une capture alors que celle que tu viens de lancer n'est pas fini, ce qui a pour effet de Relancer la capture en annulant la précédente.

Ta boucle de "CaptureFrames" tourne plus vite que la vitesse de capture.

Bon courage pour la suite.