我正在使用vb.net/c#編寫圖片編輯窗體應用程序。我有一個客戶端要求從連接到計算機的數碼相機中捕捉照片。如何從使用vb.net或asp.net或C#的USB電纜連接到我的電腦的數碼相機拍照?
如何從USB連接的數碼相機設備中捕獲照片到我的Windows應用程序中?
我正在使用vb.net/c#編寫圖片編輯窗體應用程序。我有一個客戶端要求從連接到計算機的數碼相機中捕捉照片。如何從使用vb.net或asp.net或C#的USB電纜連接到我的電腦的數碼相機拍照?
如何從USB連接的數碼相機設備中捕獲照片到我的Windows應用程序中?
如果您使用Windows圖像採集庫,那麼您將在其中看到捕獲攝像頭新圖片事件的事件。我有類似的要求,並寫了一個測試裝備;我們去了當地的相機商店,嘗試了他們所有的相機。我們能夠找到的支持此功能的唯一相機是尼康D系列相機。
我們發現,大多數相機在插入時甚至無法拍照。當您將其插入USB端口時,大多數相機將切換到只有他們將要執行的操作是傳輸數據。找出相機是否可以工作的快速方法是將其插入PC,然後嘗試拍攝照片。如果它讓你這樣做,你有機會。它也需要支持PTP。
通常相機在連接時顯示爲可移動驅動器。
因此,對於Winforms應用程序,只需讓用戶選擇要上傳的驅動器和圖片即可。一旦你有了圖片的FileStream,你就可以做任何處理。
在ASP.net中,您將需要一個FileUpload控件,用戶可以再次選擇要上傳的驅動器和圖片。處理這個時間將通過HttpRequest.Files對象上的MemoryStream。
希望有所幫助。
這取決於你的相機。
許多相機將簡單地安裝爲USB大容量存儲設備。如果是這種情況,那麼您可以像從外部磁盤上的任何其他文件那樣僅從可見文件系統複製文件。
如果相機沒有以這種方式提供其內容,則需要查看相機驅動程序文檔以瞭解他們如何推薦與其進行交互。
我假設你想要激活從相機所連接的計算機上拍照的動作。如果是這樣的話,我會做的第一件事就是搜索該特定相機型號的API。除了訪問攝像機內的存儲卡之外,我不相信用於與數碼相機交互的標準協議/框架。
這取決於相機導出的接口。如果這是標準的海量存儲界面,您只需使用標準文件界面即可將相機看作可移動磁盤並可使用標準的創建/讀取/寫入/文件操作。
許多新相機都有ptp(圖片傳輸協議)接口。所以你需要使用Windows Image Acquisition API。
您可能會對Link有用。如果我理解正確,這是一個示例代碼,您正在尋找什麼。谷歌是你的朋友:)
另一塊信息:許多相機將同時支持大容量存儲和ptp接口,它可以通過相機用戶界面進行選擇。在自動模式下,相機可能會切換到ptp界面。
謝謝,我讀過WIA文檔,可能是它的C/C++?不適用於VB.nET,C# – bugBurger 2008-09-16 19:32:48
Matt @ Nikon D系列支持此操作? – 2011-04-03 19:35:23