網頁

搜尋此網誌

2009年12月12日 星期六

C Sharp Webcam

近日正在研究.Net Framework的webcam擷取方法,我想利用熟悉的C#程式語言來操作,可是卻發現.Net Framework中沒有這樣的Class可以使用,因此在Google與Jasper的協助之下,找到.Net Framework可以擷取的方法,其解決方案如下:
  1. Microsoft® Video for Windows® (VFW)
  2. Microsoft DirectShow API
  3. Windows Image Acquisition (WIA)
  4. Microsoft Media Foundation SDK
如果想要用DirectShow API的人,可以參考Windows SDK(自行到微軟網站免費取得)中的graphedt.exe這個程式(路徑通常是C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe),可以先玩玩看了解DirectShow的觀念,不過好像DirectShow較難上手,優點是效果跟效能較佳。

目前研讀的結果是這些大多以C++語言開發為主,若你是用C#語言開發,可能需要使用DllImportAttribute 類別的功能,參考
  1. DllImportAttribute Class:http://msdn.microsoft.com/zh-tw/library/system.runtime.interopservices.dllimportattribute.aspx
  2. Interoperating with Unmanaged Code:http://msdn.microsoft.com/en-us/library/sd10k43k.aspx
  3. Platform Invoke Examples:http://msdn.microsoft.com/en-us/library/42b9ea93.aspx
  4. Consuming Unmanaged DLL Functions:http://msdn.microsoft.com/en-us/library/26thfadc.aspx
  5. Platform Invoke Data Types:http://msdn.microsoft.com/en-us/library/ac7ay120.aspx
就目前而言,最簡單且便利的方式是使用Microsoft® Video for Windows® (VFW),這是Windows API,所以直接呼叫就可以囉!可以參考Video Capture Reference:http://msdn.microsoft.com/en-us/library/dd757696(VS.85).aspx

Basic Capture Operations

Capture Windows

Capture Drivers

Capture Driver Preview and Overlay Modes

Capture Driver Video Dialog Boxes

Audio Format

Video Capture Settings

Capture File and Buffers

Directly Using Capture Data

Capture from MCI Device

Manual Frame Capture

Still-Image Capture

Advanced Capture Options

Working with Palettes

Yielding to Other Applications

AVICap Callback Functions

另外一篇有用的資料:

沒有留言:

張貼留言

熱門文章