資源簡介
這是我用C#寫的攝像頭控件,可以預覽,拍照。
把項目添加到解決方案中,然后新建一個窗體,從工具箱中把CameraView控件拖到窗體上,再寫一句:CameraView1.Start() 就啟動了。
要拍照,請調用:cameraView1.TakePicture(filename);
本人心血啊!

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Drawing;
using?System.Data;
using?System.Text;
using?System.Windows.Forms;
using?DirectShowLib;
using?System.Runtime.InteropServices;
using?System.Drawing.Imaging;
using?System.Threading;
using?System.Diagnostics;
namespace?CameraLib
{
????[Guid(“A264F504-DE24-4fda-A27C-C319F7593C2C“)]
????public?partial?class?CameraView?:?UserControl
????{
????????public?CameraView()
????????{
????????????InitializeComponent();
????????????m_state?=?CameraState.Stop;
????????????Enabled?=?false;
????????}
????????private?void?CameraView_Load(object?sender?EventArgs?e)
????????{
????????????Control?topcontrol?=?Parent;
????????????while?(topcontrol?!=?null)
????????????{
????????????????if?(topcontrol?is?Form)
????????????????{
????????????????????Form?fm?=?topcontrol?as?Form;
????????????????????fm.FormClosed?+=?new?FormClosedEventHandler(fm_FormClosed);
????????????????????break;
????????????????}
????????????????topcontrol?=?topcontrol.Parent;
????????????}
????????}
????????void?fm_FormClosed(object?sender?FormClosedEventArgs?e)
????????{
????????????Stop();
????????}
????????Thread?eventthread;
????????MyCapture?cam?=?null;
????????????????
????????bool?maincamera?=?true;
????????[Category(“CAMERA“)]
????????[Description(“是否使用主攝像頭“)]
????????[DefaultValue(true)]
????????public?bool?MainCamera?{?get?{?return?maincamera;?}?set?{?maincamera?=?value;?}?}
????????int?width?=?320;
????????[Category(“CAMERA“)]
????????[Description(“截圖寬度“)]
????????[DefaultValue(320)]
????????public?int?PictureWidth?{?get?{?return?width;?}?set?{?width?=?value;?}?}
????????int?height?=?240;
????????[Category(“CAMERA“)]
????????[Description(“截圖高度“)]
????????[DefaultValue(240)]
????????public?int?PictureHeight?{?get?{?return?height;?}?set?{?height?=?value;?}?}
????????CameraState?m_state;
????????[Category(“CAMERA“)]
????????[Description(“運行狀態“)]
????????public?CameraState?State
????????{
????????????get?{?return?m_state;?}
????????????private?set
????????????{
????????????????if?(m_state?!=?value)
????????????????{
????????????????????m_state?=?value;
????????????????????if?(onStateChanged?!=?null)
????????????????????{
????????????????????????MethodInvoker?mi?=?delegate()
????????????????????????{
????????????????????????????onStateChanged(m_state);
????????????????????????};
????????????????????????if?(Parent.InvokeRequired)
????????????????????????????Parent.Invoke(mi);
????????????????????????else?
????????????????????????????mi();
????????????????????}
????????????????}
????????????}
????????}
????????public?enum?CameraState
????????{
????????????Stop?Run
????????}
????????public?delegate?void?StateHandler(CameraState?state);
????????[Category(“CAMERA“)]
????????[Description(“狀態變化事件“)]
????????public?event?StateHandler?onStateChanged?=?null;
????????public?List?sizes
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-04-13?21:10??CameraLib\bin\
?????目錄???????????0??2013-04-13?21:11??CameraLib\bin\Debug\
?????文件???????19968??2013-04-13?21:11??CameraLib\bin\Debug\CameraLib.dll
?????文件???????52736??2013-04-13?21:11??CameraLib\bin\Debug\CameraLib.pdb
?????文件??????282624??2013-03-29?16:37??CameraLib\bin\Debug\DirectShowLib-2005.dll
?????目錄???????????0??2013-04-13?21:10??CameraLib\bin\x86\
?????目錄???????????0??2013-04-10?18:26??CameraLib\bin\x86\Debug\
?????文件???????19968??2013-04-03?16:49??CameraLib\bin\x86\Debug\CameraLib.dll
?????文件???????44544??2013-04-03?16:49??CameraLib\bin\x86\Debug\CameraLib.pdb
?????文件??????282624??2013-03-29?16:37??CameraLib\bin\x86\Debug\DirectShowLib.dll
?????文件????????4053??2013-04-13?21:11??CameraLib\CameraLib.csproj
?????文件?????????168??2013-04-04?00:57??CameraLib\CameraLib.csproj.user
?????文件????????7216??2013-04-04?01:08??CameraLib\CameraView.cs
?????文件????????1588??2013-03-29?17:06??CameraLib\CameraView.Designer.cs
?????文件????????5814??2013-03-29?17:06??CameraLib\CameraView.resx
?????文件????????5051??2013-03-29?16:36??CameraLib\MyCamera.cs
?????文件???????26276??2013-04-04?01:00??CameraLib\MyCapture.cs
?????目錄???????????0??2013-04-10?18:26??CameraLib\obj\
?????目錄???????????0??2013-04-13?21:11??CameraLib\obj\Debug\
?????文件?????????180??2013-04-13?21:11??CameraLib\obj\Debug\CameraLib.CameraView.resources
?????文件????????2792??2013-04-13?21:11??CameraLib\obj\Debug\CameraLib.csproj.FileListAbsolute.txt
?????文件?????????779??2013-04-09?20:33??CameraLib\obj\Debug\CameraLib.csproj.GenerateResource.Cache
?????文件???????19968??2013-04-13?21:11??CameraLib\obj\Debug\CameraLib.dll
?????文件???????52736??2013-04-13?21:11??CameraLib\obj\Debug\CameraLib.pdb
?????目錄???????????0??2013-04-10?19:04??CameraLib\obj\Debug\Refactor\
?????文件????????8704??2013-04-10?19:04??CameraLib\obj\Debug\Refactor\CameraLib.dll
?????文件????????6463??2013-04-13?21:11??CameraLib\obj\Debug\ResolveAssemblyReference.cache
?????目錄???????????0??2013-03-29?16:36??CameraLib\obj\Debug\TempPE\
?????目錄???????????0??2013-04-10?18:26??CameraLib\obj\x86\
?????目錄???????????0??2013-04-10?18:26??CameraLib\obj\x86\Debug\
?????文件?????????180??2013-04-03?16:49??CameraLib\obj\x86\Debug\CameraLib.CameraView.resources
............此處省略11個文件信息
評論
共有 條評論