Я использую WIALib для доступа к своей веб-камере. Код, который я разрабатываю, довольно прост: при нажатии кнопки делается снимок с веб-камеры, который затем отображается в окне изображения.
Я уже могу делать снимки с помощью своей веб-камеры, но она еще не полностью автоматизирована. Единственный способ, который я нашел для получения изображений, сделанных веб-камерой, - использовать это:
wiaPics = wiaRoot.GetItemsFromUI( WiaFlag.SingleImage, WiaIntent.ImageTypeColor ) as CollectionClass;
Но это просит пользователя выбрать изображение. И я всегда хочу сделать последний снимок. Итак, я пытаюсь так:
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);
Но метод TakePicture() возвращает null, поэтому я не могу передать изображение. Самое странное, что картинка действительно была сделана после вызова метода TakePicture(), так как если я захожу в веб камеру вручную картинка есть! Я просто не понимаю, почему он не возвращает значение.
Подводя итог, мне нужно одно из этих двух: 1. Заставить TakePicture() работать, возвращая значение, которое я могу использовать. 2. Автоматический доступ к списку изображений веб-камеры, чтобы я мог получить последнее сделанное изображение.
С уважением и благодарностью за помощь, Микаэль.