J'utilise WIALib pour accéder à ma webcam. Le code que je développe est assez simple: quand on appuie sur un bouton, une image webcam est prise, puis affichée dans une boîte d'image.Prendre une photo automatiquement en utilisant une webcam en C# en utilisant WIA
Je peux déjà prendre des photos avec ma webcam, mais elle n'est pas encore entièrement automatisée. La seule manière que je trouvais pour récupérer les photos prises par la webcam, utilise ceci:
wiaPics = wiaRoot.GetItemsFromUI(WiaFlag.SingleImage, WiaIntent.ImageTypeColor) as CollectionClass;
Mais cela demande à l'utilisateur de sélectionner l'image. Et je veux toujours la dernière photo prise. J'essaie donc de cette façon:
string imageFileName = Path.GetTempFileName(); // create temporary file for image
wiaItem = wiaRoot.TakePicture(); // take a picture
Cursor.Current = Cursors.WaitCursor; // could take some time
this.Refresh();
wiaItem.Transfer(imageFileName, false); // transfer picture to our temporary file
pictureBox1.Image = Image.FromFile(imageFileName); // create Image instance from file
Marshal.ReleaseComObject(wiaItem);
Mais la méthode TakePicture() renvoie null, et donc je ne peux pas transférer l'image. La chose la plus étrange est que l'image a été vraiment prise après que la méthode TakePicture() ait été appelée, puisque si je vais à la webcam manuellement l'image est là! Je ne comprends pas pourquoi il ne renvoie pas de valeur.
Pour récapituler, j'ai soit besoin de l'un de ces deux: 1. Obtenez TakePicture() au travail, renvoyant une valeur que je peux utiliser. 2. Accédez automatiquement à la liste des images de la webcam pour pouvoir récupérer la dernière photo prise. Cordialement, merci pour l'aide, Micael.
Merci pour l'aide Philip. La chose est, je reçois l'erreur "Pas de surcharge pour la méthode" TakePicture "prend 1 argument". :( – Micael
@Micael - si vous êtes sur le nouveau, voir si mon edit fonctionnera pour vous –
Je ne connais pas la version de mon WiaLib Je travaille sous Windows XP Pro et Visual Studio 2010. Quand je collé votre code, la classe DeviceManagerClass et Device n'ont pas été reconnus Dois-je ajouter une autre référence, autre que WiaLib Merci encore :) – Micael