专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

VB.NET通过调用摄像头或数码相机拍照并保存照片解决方法

发布时间:2011-06-23 16:03:58 文章来源:www.iduyao.cn 采编人员:星星草
VB.NET通过调用摄像头或数码相机拍照并保存照片
开发环境: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
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: