硬體環境:聯想c360一體機,自帶攝像頭
編寫環境:vs2010
語言:c# wpf
實現步驟:
**aforge類庫,並新增引用:
using aforge;
using aforge.controls;
using aforge.video;
using aforge.video.direc程式設計客棧tshow;
using size = system.drawing.size;
在xaml介面中新增videosourceplayer控制項,此次稍微解釋如何新增外來控制項:
在工具箱中新增新的選項卡,右鍵新增選擇項,瀏覽選擇控制項dll確定,引用控制項即可新增到工具箱中。
列舉所有的攝像頭:
filterinfocollection videodevices;
videodevices = new filterinfocollection(filtercategory.videoinputdevice);
foreach (filterinfo device in videodevices)
連線攝像頭:
宣告:fileterinfo info;
info = videodevices[0];//選取第乙個,此處可作靈活改動
videocapturedevice videosource = new videocapturedevice(videodevices[info.monikerstring);
videosource.desiredframesize = new system.drawing.size(214, 281);
videosource.desiredframerate = 1;
videosourceplayer.videosource = videosource;
videosourceplayer.start();
關閉攝像頭:
videosourceplayer.signaltostop();
videosourceplayer.waitforstop();
拍照:if (videosourceplayer.isrunning)
using (stream stream = file.create(picname))
}專案中要求是攝像頭處於監控狀態,拍照後畫面固定儲存,不滿意可以清空再次進行拍照,直到滿意為止。
做法是在videosourceplayer的上面新增乙個image控制項,因為專案是wpf做的www.cppcns.com,所有**顯示只能新增image控制項,有兩點需要注意:
1)wpf引用winform控制項需要使用windowsformshost控制項,所以監控**和**顯示時是控制項windowsformshost和image控制項的顯示和隱藏,此處走了一段彎路所以記錄下來。
2)image控制項的source已經繫結,但是**需要清空刪除該照程式設計客棧片資源,系統提示的大致意思是資源已經被占用無法刪除。解決途徑:
宣告:bitmapimage bmi = new system.windows.media.imaging.bitmapimage();
使用時:
bmi.bgeininit();
bmi.urisource = new uri(picname);
bmi.cacheoption = bitmapcacheoption.onload;
bmi.endinit();
繫結:this.image.source = bmi;
本文標題: c#實現呼叫本機攝像頭例項
本文位址:
c 攝像頭程式設計例項
這是乙個關於設想頭的類 using system using system.runtime.interopservices namespace webcam structlayout layoutkind.sequential public struct bitmapinfoheader struc...
實現asp程式呼叫攝像頭並控制攝像頭進行拍照
這幾天好多人問我如何在asp程式中控制攝像頭去抓拍 asp技術還是99年的時候看過一點點,早就著公尺飯吃了,不過既然有人問,那就是看得起咱,花了乙個晚上的時間把asp程式呼叫攝像頭拍照的問題搞定了,現記錄如下,讓有類似需求的同學可以少走些彎路。用到的技術 1.asp程式中作base64編碼和解碼,使...
Android 呼叫攝像頭
androidmanifest新增許可權 intent呼叫開啟照相機 intent intent new intent mediastore.action image capture file file new file environment.getexternalstoragedirectory...