[Capture] Capturer plusieurs image en boucle dans un programme

toof89 Messages postés 6 Date d'inscription jeudi 17 juillet 2008 Statut Membre Dernière intervention 24 mai 2010 - 28 avril 2010 à 14:34
naingenieur Messages postés 2 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 21 juin 2010 - 21 juin 2010 à 12:58
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

naingenieur Messages postés 2 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 21 juin 2010
21 juin 2010 à 12:58
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.
0
Rejoignez-nous