《摄像头编程.doc》由会员分享,可在线阅读,更多相关《摄像头编程.doc(45页珍藏版)》请在三一办公上搜索。
1、ACDCounts属性(音频捕捉设备的数量)ACompCounts属性(音频压缩引擎的数量)AddToRot属性(是否加入到系统运行对象表)ARDCounts属性(音频发布设备的数量)CaptureAudio属性(是否捕捉音频)CaptureFile属性(捕捉文件名)CaptureVideo属性(是否捕捉视频)CurACD属性(当前的音频捕捉设备)CurAComp属性(当前的音频压缩引擎)CurARD属性(当前的音频发布设备)CurVCD属性(当前的视频捕捉设备)CurVCDInput属性(当前视频输入通道)CurVComp属性(当前的视频压缩引擎)DefaultMenuItems属性(缺省菜
2、单项)EnableDefaultMenu属性(是否使用缺省菜单)Picture属性(背景图片)PlayState属性(控件运行状态)PreviewAudio属性(控件运行时是否预览音频)PreviewVideo属性(控件运行时是否预览视频)TitleGenerator属性(视频字幕)VCDCounts属性(视频捕捉设备的数量)VCDInputCounts属性(视频捕捉设备输入通道的数量)VCompCounts属性(视频压缩引擎的数量)VideoHeight属性(视频的高度)VideoSampleMachining属性(视频样本处理器)VideoWidth属性(视频的宽度)返回目录ACDCoun
3、ts属性当前系统中可供使用的音频捕捉设备的数量读/写:只读类型:longVB语法:longVar = Object.ACDCountsVC语法:longVar = Object.GetACDCounts();参见:CurACD属性、GetACDName方法返回目录ACompCounts属性当前系统中可供使用的音频压缩引擎的数量读/写:只读类型:longVB语法:longVar = Object.ACompCountsVC语法:longVar = Object.GetACompCounts();参见:CurAComp属性、GetACompName方法返回目录AddToRot属性是否将当前过滤器图
4、加入到系统运行对象表中读/写:读写类型:boolVB语法:Object.AddToRot = boolVarboolVar = Object.AddToRotVC语法:Object.SetAddToRot(boolVar);boolVar = Object.GetAddToRot();说明:如果将当前过滤器图加入到系统运行对象表中,就可以利用DX8SDK提供的工具程序GraphEdit查看当前过滤器图结构,但只有在Win2k/WinXP该功能才被支持。返回目录ARDCounts属性当前系统中可供使用的音频发布(播放)设备的数量读/写:只读类型:longVB语法:longVar = Object
5、.ARDCountsVC语法:longVar = Object.GetARDCounts();参见:CurARD属性、GetARDName方法返回目录CaptureAudio属性控件运行时是否捕捉音频流读/写:读写类型:boolVB语法:Object.CaptureAudio = boolVarboolVar = Object.CaptureAudioVC语法:Object.SetCaptureAudio(boolVar);boolVar = Object.GetCaptureAudio();返回目录CaptureFile属性保存音/视频流数据的捕捉文件的完整文件名读/写:读写类型:strin
6、gVB语法:Object.CaptureFile = stringVarstringVar = Object.CaptureFileVC语法:Object.SetCaptureFile(stringVar);stringVar = Object.GetCaptureFile();返回目录CaptureVideo属性控件运行时是否捕捉视频流读/写:读写类型:boolVB语法:Object.CaptureVideo = boolVarboolVar = Object.CaptureVideoVC语法:Object.SetCaptureVideo(boolVar);boolVar = Object.
7、GetCaptureVideo();返回目录CurACD属性当前的音频捕捉设备读/写:读写类型:longVB语法:Object.CurACD = longVarlongVar = Object.CurACDVC语法:Object.SetCurACD(longVar);longVar = Object.GetCurACD();说明:该属性决定控件使用当前系统可用音频捕捉设备中的哪一个设备进行音频捕捉,缺省为0即第一个音频捕捉设备。参见:ACDCounts属性、GetACDName方法返回目录CurAComp属性当前的音频压缩引擎读/写:读写类型:longVB语法:Object.CurAComp
8、= longVarlongVar = Object.CurACompVC语法:Object.SetCurAComp(longVar);longVar = Object.GetCurAComp();说明:该属性决定控件使用当前系统可用音频压缩引擎中的哪一个进行音频压缩,缺省为-1即不进行音频压缩。参见:ACompCounts属性、GetACompName方法返回目录CurARD属性当前的音频发布(播放)设备读/写:读写类型:longVB语法:Object.CurARD = longVarlongVar = Object.CurARDVC语法:Object.SetCurARD(longVar);l
9、ongVar = Object.GetCurARD();说明:该属性决定控件使用当前系统可用音频发布设备中的哪一个设备进行音频发布,缺省为0即第一个音频发布设备。参见:ARDCounts属性、GetARDName方法返回目录CurVCD属性当前的视频捕捉设备读/写:读写类型:longVB语法:Object.CurVCD = longVarlongVar = Object.CurVCDVC语法:Object.SetCurVCD(longVar);longVar = Object.GetCurVCD();说明:该属性决定控件使用当前系统可用视频捕捉设备中的哪一个设备进行视频捕捉,缺省为0即第一个视
10、频捕捉设备。参见:VCDCounts属性、GetVCDName方法返回目录CurVCDInput属性被选中视频捕捉设备的当前输入通道读/写:读写类型:longVB语法:Object.CurVCDInput = longVarlongVar = Object.CurVCDInputVC语法:Object.SetCurVCDInput(longVar);longVar = Object.GetCurVCDInput();说明:该属性决定被选中视频捕捉设备使用哪一个输入通道获取视频源,缺省为0即使用第一个通道。该属性是一个持续属性!参见:VCDInputCounts属性、GetVCDInputNam
11、e方法返回目录CurVComp属性当前的视频压缩引擎读/写:读写类型:longVB语法:Object.CurVComp = longVarlongVar = Object.CurVCompVC语法:Object.SetCurVComp(longVar);longVar = Object.GetCurVComp();说明:该属性决定控件使用当前系统可用视频压缩引擎中的哪一个进行视频压缩,缺省为-1即不进行视频压缩。参见:VCompCounts属性、GetVCompName方法返回目录DefaultMenuItems属性缺省菜单项掩码读/写:读写类型:longVB语法:Object.Default
12、MenuItems = lVarlVar = Object.DefaultMenuItemsVC语法:Object.SetDefaultMenuItems(lVar);lVar = Object.GetDefaultMenuItems();说明:通过该属性可以利用一个控件定义的枚举值组合来决定缺省菜单中显示哪些菜单项。菜单项枚举类型定义(IDL):typedef enumPlayItem = 00001, /播放PauseItem = 00002, /暂停StopItem = 00004, /停止CopyToClipboardItem = 00008, /抓图TakePictureItem =
13、 00010, /照相PreviewItem = 00020, /预览CaptureToFileItem = 00040, /录制到文件VCDSelectItem = 00080, /视频采集设备VCQSelectItem = 00100, /视频采集质量VCISelectItem = 00200, /视频输入选择VCompSelectItem = 00400, /视频压缩ACDSelectItem = 00800, /音频采集设备ACompSelectItem = 01000, /音频压缩AllItem = 0x1FFF /所有项EMenuItem ;参见:DefaultMenuComman
14、d事件返回目录EnableDefaultMenu属性是否使用控件提供的缺省弹出式菜单读/写:读写类型:boolVB语法:Object.EnableDefaultMenu = boolVarboolVar = Object.EnableDefaultMenuVC语法:Object.SetEnableDefaultMenu(boolVar);boolVar = Object.GetEnableDefaultMenu();说明:缺省菜单提供了对常用操作的支持,该属性缺省为true即允许使用控件提供的缺省弹出式菜单。返回目录Picture属性控件待机状态时的背景图片读/写:读写类型:OLEobject
15、VB语法:Object.Picture = pictureVarpictureVar = Object.PictureVC语法:Object.SetPicture(pictureVar);pictureVar = Object.GetPicture();说明:该属性是一个标准的OLE对象,其具体使用方法参见相关MSDN文档。返回目录PlayState属性控件运行状态读/写:读写类型:EPlayState(控件定义的long枚举类型)类型定义(IDL):typedef enum Stopped, /停止Plaing, /运行Paused /暂停 EPlayState;VB语法:Object.Pl
16、ayState = enumVarenumVar = Object.PlayStateVC语法:Object.SetPlayState(enumVar);enumVar = Object.GetPlayState();说明:该属性可以控制和掌握控件的运行状态,。返回目录PreviewAudio属性控件运行时是否预览音频读/写:读写类型:boolVB语法:Object.PreviewAudio = boolVarboolVar = Object.PreviewAudioVC语法:Object.SetPreviewAudio(boolVar);boolVar = Object.GetPreview
17、Audio();返回目录PreviewVideo属性控件运行时是否预览视频读/写:读写类型:boolVB语法:Object.PreviewVideo = boolVarboolVar = Object.PreviewVideoVC语法:Object.SetPreviewVideo(boolVar);boolVar = Object.GetPreviewVideo();返回目录TitleGenerator属性视频字幕读/写:只读类型:COMobject(控件定义的COM对象)对象方法:无对象属性:TitleGenerator.Text /字幕文本,string类型。TitleGenerator.
18、Style /字幕风格,控件定义的枚举类型。/typedef enum TGSNormal(普通), TGSClear(清晰,即带边框) ETGStyle;TitleGenerator.Font /字幕字体,OLE字体对象类型。TitleGenerator.TextColor /字幕文本颜色,32位RGB颜色编码类型。TitleGenerator.PosX /字幕X向位置,视频左上角为(0,0),度量为屏幕像素。TitleGenerator.PosY /字幕X向位置,视频左上角为(0,0),度量为屏幕像素。TitleGenerator.FrameColor /字幕文本的边框颜色,32位RGB颜
19、色编码类型。对象事件:无VB语法:Object.TitleGenerator.Text = stringVarstringVar = Object.TitleGenerator.TextObject.TitleGenerator.Style = enumVarenumVar = Object.TitleGenerator.StyleVC语法:CTitleGenerator & rTG = Object.GetTitleGenerator();rTG.SetText(stringVar);stringVar = rTG.GetText();rTG.SetStyle(enumVar);enumVa
20、r = rTG.GetStyle();说明:该属性是一个控件定义的COM对象,通过修改该COM对象的属性可以控制字幕的字体、尺寸、颜色、风格等特性。字幕需要8.0或更高版本DirectX的支持返回目录VCDCounts属性当前系统中可供使用的视频捕捉设备的数量读/写:只读类型:longVB语法:longVar = Object.VCDCountsVC语法:longVar = Object.GetVCDCounts();参见:CurVCD属性、GetVCDName方法返回目录VCDInputCounts属性被选中视频捕捉设备输入通道的数量读/写:只读类型:longVB语法:longVar = O
21、bject.VCDInputCountsVC语法:longVar = Object.GetVCDInputCounts();参见:CurVCDInput属性、GetVCDInputName方法返回目录VCompCounts属性当前系统中可供使用的视频压缩引擎的数量读/写:只读类型:longVB语法:longVar = Object.VCompCountsVC语法:longVar = Object.GetVCompCounts();参见:CurVComp属性、GetVCompName方法返回目录VideoHeight属性当前捕捉视频的高度(单位为:像素)读/写:只读类型:longVB语法:lon
22、gVar = Object.VideoHeightVC语法:longVar = Object.GetVideoHeight();参见:VideoWidth属性返回目录VideoSampleMachining属性视频样本处理器读/写:只读类型:COMobject(控件定义的COM对象)对象方法:无对象属性:VideoSampleMachining.Inversion /视频是否翻转,bool类型。VideoSampleMachining.MirrorImage /视频是否镜像,bool类型。对象事件:无VB语法:Object.VideoSampleMachining.Inversion = bo
23、olVarboolVar= Object.VideoSampleMachining.InversionObject.VideoSampleMachining.MirrorImage = boolVarboolVar = Object.VideoSampleMachining.MirrorImageVC语法:CVideoSampleMachining & rVSM = Object.GetVideoSampleMachining();rVSM.SetInversion(boolVar);boolVar= rVSM.GetInversion();rVSM.SetMirrorImage(boolVa
24、r);boolVar= rVSM.GetMirrorImage();说明:该属性是一个控件定义的COM对象,通过修改该COM对象的属性可以控制视频是否翻转和镜像。视频翻转和视频镜像需要8.0或更高版本DirectX的支持返回目录VideoWidth属性当前捕捉视频的宽度(单位为:像素)读/写:只读类型:longVB语法:longVar = Object.VideoWidthVC语法:longVar = Object.GetVideoWidth();参见:VideoHeight属性关键字:AVCaptureAVCapture使用说明-方法admin发表于 2010-12-04 05:25 | 来
25、源:| 阅读 205 viewsCoarseness方法(降低视频捕捉分辨率)Fine方法(提高视频捕捉分辨率)GetACDName方法(获取音频捕捉设备的名称)GetACompName方法(获取音频压缩引擎的名称)GetARDName方法(获取音频发布设备的名称)GetCurrentImage方法(抓图)GetVCDInputName方法(获取视频输入通道的名称)GetVCDName方法(获取视频捕捉设备的名称)GetVCompName方法(获取视频捕捉设备的名称)ShowConfigureDialog方法(启动过滤器提供的配置对话框)TakePictureToFile方法(照相)Coars
26、eness方法降低视频捕捉分辨率参数:无。返回值:无。VB语法:Object.CoarsenessVC语法:Object.Coarseness();说明:该方法将当前视频捕捉设备的捕捉分辨率调整为一个更低但肯定被支持的分辨率。例如典型的PAL制式数字视频捕捉设备支持720576、360288、180144、8872四个分辨率,如果当前的分辨率为360288,调用Coarseness后,分辨率将降为180144。返回目录Fine方法提高视频捕捉分辨率参数:无。返回值:无。VB语法:Object.FineVC语法:Object.Fine();说明:该方法将当前视频捕捉设备的捕捉分辨率调整为一个更高
27、但肯定被支持的分辨率。例如典型的PAL制式数字视频捕捉设备支持720576、360288、180144、8872四个分辨率,如果当前的分辨率为360288,调用Fine后,分辨率将提高到720576。返回目录GetACDName方法获取音频捕捉设备的名称参数:lIndex 指定音频捕捉设备的索引,索引值的合法范围为 0 lIndex Object.ACDCounts - 1 。返回值:如果成功则返回一个音频捕捉设备名称字符串,否则返回一个空字符串。VB语法:Dim strName as StringstrName = Object.GetACDName(Index)VC语法:CString s
28、trName;strName = Object.GetACDName(Index);说明:该方法用于获取由索引指定的音频捕捉设备的设备名称。返回目录GetACompName方法获取音频压缩引擎名称参数:lIndex 指定音频压缩引擎的索引,索引值的合法范围为 0 lIndex Object.ACompCounts - 1 。返回值:如果成功则返回一个音频压缩引擎名称字符串,否则返回一个空字符串。VB语法:Dim strName as StringstrName = Object.GetACompName(Index)VC语法:CString strName;strName = Object.G
29、etACompName(Index);说明:该方法用于获取由索引指定的音频压缩引擎的名称。返回目录GetARDName方法获取音频发布(播放)设备名称参数:lIndex 指定音频发布设备的索引,索引值的合法范围为 0 lIndex Object.ARDCounts - 1 。返回值:如果成功则返回一个音频发布设备名称字符串,否则返回一个空字符串。VB语法:Dim strName as StringstrName = Object.GetARDName(Index)VC语法:CString strName;strName = Object.GetARDName(Index);说明:该方法用于获取
30、由索引指定的音频发布设备的名称。音频发布设备是指用来播放音频流的输出设备,如:DirectSound、WaveOut等。返回目录GetCurrentImage方法从当前视频流中抓取一帧图象到一个Picture对象中参数:无。返回值:如果成功返回一个Picture对象,该Picture对象中包含本方法调用所抓取的图象。VB语法:Dim Pic as StdPictureSet Pic = Object.GetCurrentImageVC语法:CPicture oPic;oPic = Object.GetCurrentImage();说明:该方法在当前视频流中以DIB位图格式抓取被调用瞬间的一帧图
31、象,并以此位图创建和返回一个标准Picture对象。为了保证该方法的成功调用,建议安装DirectX 8.x返回目录GetVCDInputName方法获取指定视频输入通道的名称参数:lIndex 指定视频输入通道的索引,索引值的合法范围为 0 lIndex Object.VCDInputCounts - 1 。返回值:如果成功则返回一个音频发布设备名称字符串,否则返回一个空字符串。VB语法:Dim strName as StringstrName = Object.GetVCDInputName(Index)VC语法:CString strName;strName = Object.GetVC
32、DInputName(Index);说明:该方法并不总是适用,对于大部分数字视频捕捉设备而言,视频流仅仅来源于单一通道,不存在输入通道选择的问题,因此也不许要定义输入通道名称,甚至不需要输入通道这个概念。但许多模拟视频捕捉卡(例如FlyVideo)有3个甚至更多视频输入通道可供选择,通常每一个输入通道都有其独有的名称。返回目录GetVCDName方法获取视频捕捉设备的名称参数:lIndex 指定视频捕捉设备的索引,索引值的合法范围为 0 lIndex Object.VCDCounts - 1 。返回值:如果成功则返回一个视频捕捉设备名称字符串,否则返回一个空字符串。VB语法:Dim strNa
33、me as StringstrName = Object.GetVCDName(Index)VC语法:CString strName;strName = Object.GetVCDName(Index);说明:该方法用于获取由索引指定的视频捕捉设备的设备名称。返回目录GetVCompName方法获取视频压缩引擎名称参数:lIndex 指定视频压缩引擎的索引,索引值的合法范围为 0 lIndex Object.VCompCounts - 1 。返回值:如果成功则返回一个视频压缩引擎名称字符串,否则返回一个空字符串。VB语法:Dim strName as StringstrName = Objec
34、t.GetVCompName(Index)VC语法:CString strName;strName = Object.GetVCompName(Index);说明:该方法用于获取由索引指定的视频压缩引擎的名称。返回目录ShowConfigureDialog方法启动过滤器提供的配置对话框参数:eDlg 指定希望启动的对话框,该变量是一个枚举量其取值及含义如下:AudioCaptureDeviceConfigure 音频捕捉设备配置对话框VideoCaptureDeviceConfigure 视频捕捉设备配置对话框VideoCaptureFormatConfigure 视频捕捉格式配置对话框AVI
35、MuxConfigure AVI混合器配置对话框OtherConfigure 其他配置对话框返回值:无。VB语法:Object.ShowConfigureDialog (VideoCaptureDeviceConfigure) 启动视频配置对话框设置视频捕捉设备VC语法:Object.ShowConfigureDialog(VideoCaptureDeviceConfigure); /启动视频配置对话框设置视频捕捉设备说明:该方法用于启动一些音/视频捕捉相关的关键过滤器的配置对话框,对这些过滤器进行一些被支持的参数设置,这些对话框均有过滤器开发商实现,其使用的语言和布局由系统中所安装Direc
36、tX组件版本决定。返回目录TakePictureToFile方法从当前视频流中抓取一帧图象到一个文件中或系统剪贴板中参数:bstrFileName 指定保存图象的文件名。返回值:无。VB语法:Object.TakePictureToFile (“C:test.bmp”) 抓取一帧图象并保存到文件中。Object.TakePictureToFile (“”) 抓取一帧图象并放到系统剪贴板中。VC语法:Object.TakePictureToFile(“C:test.bmp”); /抓取一帧图象并保存到文件中。Object.TakePictureToFile(“”); /抓取一帧图象并放到系统剪贴
37、板中。说明:该方法在当前视频流中以DIB位图格式抓取被调用瞬间的一帧图象,并将此位图保存到指定的文件中或系统剪贴板中。为了保证该方法的成功调用,建议安装DirectX 8.x返回目录易语言教程-Win32编程(一)admin发表于 2010-08-06 18:40 | 来源:| 阅读 352 views在易语言中 我们的窗口是随随便便就“画”出来的,以至于我们对系统深入的细节不了解。下面我将带领大家领略Windows的神奇,当然,媒介就是有些朋友恐慌的Win32API函数了。不过不必担心,我会尽量详细介绍用到的API函数,还请大家多多关注 不驹E阁 论坛,最好能推荐朋友来一起学习领略Windo
38、ws的编程细节。本节内容是初识Windows窗口,如果我现在说,不用易语言的窗口,怎么写一个窗口程序呢?可能这会难倒一些朋友了,那现在我们来看一段代码。首先,需要修改一下设置,规定一下程序的入口。工具-系统配置-Windows窗口启动方式-通过名称为“_启动子程序”的子程序启动 .版本 2 .程序集 程序集1 .程序集变量 集_实例句柄, 整数型 .程序集变量 集_窗口句柄, 整数型 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 .局部变量 msg, MSG 注册窗口类 () 集_窗口句柄 API_CreateWindowEx (0, “”, “able教你Win32编
39、程 初识窗口”, 位或 (#WS_VISIBLE, #WS_MAXIMIZEBOX, #WS_MINIMIZEBOX, #WS_SYSMENU), 0, 0, 400, 300, 0, 0, 集_实例句柄, 0) API_ShowWindow (集_窗口句柄, #SW_SHOW) 显示窗口 API_UpdateWindow (集_窗口句柄) 更新窗口,重画 - 进入消息循环 - .判断循环首 (API_GetMessage (msg, 0, 0, 0) 0) 从消息队列中提取消息并删除,如果返回0代表WM_QUIT API_TranslateMessage (msg) 转换虚拟关键字消息 AP
40、I_DispatchMessage (msg) 向窗口发送消息 .判断循环尾 () 返回 (0) 可以根据您的需要返回任意数值 .子程序 注册窗口类 .局部变量 wc, WNDCLASSEX 集_实例句柄 API_GetModuleHandle_int (0) wc.cbSize 48 结构大小 wc.style 位或 (#CS_HREDRAW, #CS_VREDRAW, #CS_DBLCLKS) 类风格 wc.hCursor API_LoadCursor (0, #IDC_ARROW) 鼠标指针 wc.hIcon API_LoadIcon (集_实例句柄, 129) 易语言图标 wc.hbr
41、Background #COLOR_WINDOW 背景颜色 WINDOWS预定的颜色,且规定必须+1 wc.lpszClassName “” 有些朋友熟悉的窗口类名 wc.hInstance 集_实例句柄 程序实例句柄 wc.lpfnWndProc 到整数 (&WndProc) 窗口过程函数地址 API_RegisterClassEx (wc) 注册窗口类 .子程序 WndProc, 整数型, , 窗口过程函数 .参数 hWnd, 整数型, , 窗口句柄 .参数 uMsg, 整数型, , 消息标志 .参数 wParam, 整数型, , 自定义参数1 .参数 lParam, 整数型, , 自定义
42、参数2 .判断开始 (uMsg #WM_LBUTTONDBLCLK) 鼠标左键双击消息 信息框 (“双击了窗口”, 0, ) 返回 (0) .判断 (uMsg #WM_CLOSE) 窗口关闭消息 信息框 (“窗口即将关闭”, 0, ) API_DestroyWindow (hWnd) 摧毁窗口 API_PostQuitMessage (0) 结束消息循环 返回 (0) .默认 .判断结束 返回 (API_DefWindowProc (hWnd, uMsg, wParam, lParam) 默认处理消息复制代码作用是创建如下窗口:下载(12.46 KB)2010-7-17 05:52接下来是对代
43、码的解说了,本想通过视频教程来介绍,不过内容多,没那么多口水,且麦出了问题。注册窗口类首先我们看注册窗口类这个子程序,大家熟悉的窗口一般会有窗口标题和窗口类名。其实这个窗口类名就是注册窗口类(WndClass)的时候定义的,每个窗口必须要有一个窗口类(WndClass),我们的窗口需要自己注册一个窗口类(WndClass)。Ps:接下来窗口类都用WndClass注册窗口类可以用RegisterClassEx这个函数(Register:注册;Class:类;Ex:拓展),参数只有一个,是一个WNDCLASSEX结构。WND是Window(窗口)的缩写,CLASS和EX前面说了。我们来看WNDCL
44、ASSEX结构的定义:下载(45.12 KB)2010-7-17 06:18既然是第一课,那就不得不多扯一些了,我们所说的句柄(handle)一般对应一个对象,比如一个窗口句柄对应一个窗口,一个线程句柄对应一个线程,一个实例句柄对应一个模块。对我们来说,句柄只是一个数值,但是对于系统来说句柄是一个资源的标识,像编号一样,用句柄就可以找到对应的东西,有句柄就可以做很多XE的事了。API的参数中h开头的参数就代表参数要提供一个句柄(handle)。这个就是匈牙利命名法了,类似的还有:lpsz(文本型:0结尾的字符串指针)Long 长 Pointer 指针 String字符串 Zero 零lpfn(整数