开发环境:VS 2005(WINForm)
要实现的功能:
在窗体上添加一个PictureBox控件或其他控件,在此控件上能够看到通过摄像头或数据相机动态拍摄的视频,当按一下窗体上另外一个Button控件后,保存图片到指定路径。
最好是不要用第三方控件,直接用API或系统自身的方法。谢谢!
------解决方案--------------------
mark and up
------解决方案--------------------
我也来学习下
------解决方案--------------------
只做过在原有摄像头软件基础上修改,抓图很容易
没有软件,自己写接收摄像头数据不知道怎么搞,学习下
------解决方案--------------------
学习学习 我是菜鸟!
------解决方案--------------------
me.picturebox1.image.save(“c:\a.ipg”)
------解决方案--------------------
我也想知道
------解决方案--------------------
- VB.NET code
Imports System Imports System.Runtime.InteropServices Imports System.Drawing Imports System.Drawing.Imaging Public Class Cam Private Const WM_USER As Integer = &H400 Private Const WS_CHILD As Integer = &H40000000 Private Const WS_VISIBLE As Integer = &H10000000 Private Const WM_CAP_START As Integer = WM_USER Private Const WM_CAP_STOP As Integer = WM_CAP_START + 68 Private Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP_START + 10 Private Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP_START + 11 Private Const WM_CAP_SAVEDIB As Integer = WM_CAP_START + 25 Private Const WM_CAP_GRAB_FRAME As Integer = WM_CAP_START + 60 Private Const WM_CAP_SEQUENCE As Integer = WM_CAP_START + 62 Private Const WM_CAP_FILE_SET_CAPTURE_FILEA As Integer = WM_CAP_START + 20 Private Const WM_CAP_SEQUENCE_NOFILE As Integer = WM_CAP_START + 63 Private Const WM_CAP_SET_OVERLAY As Integer = WM_CAP_START + 51 Private Const WM_CAP_SET_PREVIEW As Integer = WM_CAP_START + 50 Private Const WM_CAP_SET_CALLBACK_VIDEOSTREAM As Integer = WM_CAP_START + 6 Private Const WM_CAP_SET_CALLBACK_ERROR As Integer = WM_CAP_START + 2 Private Const WM_CAP_SET_CALLBACK_STATUSA As Integer = WM_CAP_START + 3 Private Const WM_CAP_SET_CALLBACK_FRAME As Integer = WM_CAP_START + 5 Private Const WM_CAP_SET_SCALE As Integer = WM_CAP_START + 53 Private Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP_START + 52 Public Const WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1 Public Const WM_CAP_SET_CALLBACK_STATUS = WM_CAP_START + 3 Public Const WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4 Public Const WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7 Public Const WM_CAP_GET_USER_DATA = WM_CAP_START + 8 Public Const WM_CAP_SET_USER_DATA = WM_CAP_START + 9 Public Const WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12 Public Const WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13 Public Const WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14 Public Const WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20 Public Const WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21 Public Const WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22 Public Const WM_CAP_FILE_SAVEAS = WM_CAP_START + 23 Public Const WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24 Public Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25 Public Const WM_CAP_EDIT_COPY = WM_CAP_START + 30 Public Const WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35 Public Const WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36 Public Const WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41 Public Const WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42 Public Const WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43 Public Const WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44 Public Const WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45 Public Const WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46 Public Const WM_CAP_GET_STATUS = WM_CAP_START + 54 Public Const WM_CAP_SET_SCROLL = WM_CAP_START + 55 Public Const WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61 Public Const WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64 Public Const WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65 Public Const WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66 Public Const WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67 Public Const WM_CAP_ABORT = WM_CAP_START + 69 Public Const WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70 Public Const WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71 Public Const WM_CAP_SINGLE_FRAME = WM_CAP_START + 72 Public Const WM_CAP_PAL_OPEN = WM_CAP_START + 80 Public Const WM_CAP_PAL_SAVE = WM_CAP_START + 81 Public Const WM_CAP_PAL_PASTE = WM_CAP_START + 82 Public Const WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83 Public Const WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84 '// Following added post VFW 1.1 Public Const WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85 '// Defines end of the message range Public Const WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL Private hWndC As IntPtr Private bStat As Boolean = False Private mControlPtr As IntPtr Private mWidth As Integer Private mHeight As Integer Private mLeft As Integer Private mTop As Integer <DllImport("avicap32.dll")> _ Private Shared Function capCreateCaptureWindowA(ByVal lpszWindowName() As Byte, ByVal dwStyle As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hWndParent As IntPtr, ByVal nID As Integer) As IntPtr End Function <DllImport("avicap32.dll")> _ Private Shared Function capGetVideoFormat(ByVal hWnd As IntPtr, ByVal psVideoFormat As IntPtr, ByVal wSize As Integer) As Integer End Function <DllImport("User32.dll")> _ Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Long) As Boolean End Function Function capDlgVideoFormat() As Boolean capDlgVideoFormat = SendMessage(hWndC, WM_CAP_DLG_VIDEOFORMAT, 0, 0) End Function Function capDlgVideoSource() As Boolean capDlgVideoSource = SendMessage(hWndC, WM_CAP_DLG_VIDEOSOURCE, 0, 0) End Function Function capDlgVideoDisplay() As Boolean capDlgVideoDisplay = SendMessage(hWndC, WM_CAP_DLG_VIDEODISPLAY, 0, 0) End Function Function capDlgVideoCompression() As Boolean capDlgVideoCompression = SendMessage(hWndC, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0) End Function