我正在使用WIALib訪問我的攝像頭。我正在開發的代碼非常簡單:當按下按鈕時,拍攝攝像頭圖片,然後顯示在圖片框中。使用WIA在C#中使用攝像頭自動拍攝照片
我已經可以用我的攝像頭拍照了,但還沒有完全自動化。我發現,檢索由攝像頭拍攝的照片的唯一方法,是用這樣的:
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.自動訪問攝像頭圖片列表,以便檢索最後拍攝的圖片。
最好的問候和感謝的幫助,Micael。
感謝菲利普的幫助。事情是,我得到「沒有重載的方法」TakePicture「需要1個參數」的錯誤。 :( – Micael 2010-12-01 11:04:04