[Capture] Capturer plusieurs image en boucle dans un programme
toof89
Messages postés6Date d'inscriptionjeudi 17 juillet 2008StatutMembreDernière intervention24 mai 2010
-
28 avril 2010 à 14:34
naingenieur
Messages postés2Date d'inscriptiondimanche 9 décembre 2007StatutMembreDernière intervention21 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.
A voir également:
[Capture] Capturer plusieurs image en boucle dans un programme
naingenieur
Messages postés2Date d'inscriptiondimanche 9 décembre 2007StatutMembreDernière intervention21 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.