पिछले दो दिनों में मैं सी # का उपयोग कर वेबकैम से एक छवि को कैप्चर करने का एक तरीका ढूंढ रहा हूं। मैं सी # में बहुत नया हूं और मैं बाहरी तीसरे पक्ष के libs का उपयोग नहीं करना चाहता, इसलिए मुझे दो अच्छे तरीके मिले, लेकिन दोनों लगभग एक ही त्रुटि लौटते हैं। मैं उनमें से कोई भी काम करने में नहीं मिला, इसलिए यह वास्तव में अच्छा होगा अगर आप उनमें से एक को चलाने में मदद करें या वैकल्पिक खोजने में मेरी सहायता करें।सी # वेबकैम से छवि कैप्चरिंग
तो मुझे मिला पहला तरीका विंडोज डब्ल्यूआईए का उपयोग कर रहा है। मैं निम्नलिखित कोड मिला:
CommonDialogClass dialog = new CommonDialogClass();
Device camera = dialog.ShowSelectDevice(WiaDeviceType.CameraDeviceType, true, false);
// take the photo
Item item = camera.ExecuteCommand(CommandID.wiaCommandTakePicture);
ImageFile image = (ImageFile)item.Transfer(FormatID.wiaFormatJPEG);
// filename and saving
image.SaveFile("Test.jpg");
इस कोड exacly मैं के लिए क्या देख रहा हूँ हो रहा है, लेकिन मैं इसे, नहीं चल रहा हो सकता है क्योंकि मैं दूसरी पंक्ति पर निम्न त्रुटि हो रही है:
http://www.timvw.be/wp-content/code/csharp/testavicap32.zip
लेकिन मैं इस कोड पर हो रही है::
Exception from HRESULT: 0x80210015
दूसरा तरीका मैंने पाया निम्न नमूना साथ Avicap32.dll उपयोग कर रहा है
Image image = ((CaptureDevice)cboDevices.SelectedItem).Capture();
image.Save(@"c:\capture.png", ImageFormat.Png);
निम्नलिखित अपवाद: NullReferenceException: वस्तु संदर्भ एक वस्तु का एक उदाहरण के लिए सेट नहीं।
मुझे लगता है कि दोनों समाधान समस्याएं पैदा कर रहे हैं क्योंकि उन्हें मेरा कैमरा नहीं मिल रहा है, लेकिन मैं बिना किसी समस्या के स्काइप में अपने कैमरे का उपयोग कर सकता हूं।
यह है कि मैं उन्हें बहुत का उपयोग कर सफल रहा, हालांकि चित्र के लिए तुलनीयता के स्तर बल्कि कम लगती है , मैं 7 परीक्षण कैमरों में से केवल 2 में चल रहा हूं, मेरा अनुमान है कि आधुनिक कैमरे एक अलग छवि कैप्चर फ़ंक्शन से परेशान नहीं होते हैं और केवल एक वीडियो फ्रेम लेते हैं, और कई वर्षों में aforge को अपडेट नहीं किया गया है – MikeT