none
请教如何使用picturebox实时显示通过USB接口接收到的数据(开发摄像头程序 visual basic 6.0)谢谢! RRS feed

  • 问题

  • 大家好:

    我正在使用VB6.0开发一个USB摄像头数据采集程序,摄像头数据已经能通过USB接口读出,读出的数据是线阵摄像头的2500个像素的强度值,保存在一个long型的有2500个值的数组内,只要求显示一条线而不是一幅图像。

    现在是使用一个button的click事件启动摄像头数据读取,每读出一帧就用picturebox显示,如此在click事件内循环显示。但并没有显示出来,编译器死机。

    请教:是不是我上述的程序结构有问题,请大家指点!

    十分感谢!

    2010年12月3日 1:32

答案

  • 您好

    參考此文 抓取 webcam 與畫面 show 出

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
    
    Private lngHwnd As Long
        
    Private Sub Command1_Click()
      Timer1.Enabled = True
    End Sub
    
    Private Sub Form_Load()
      Timer1.Enabled = False
      lngHwnd = capCreateCaptureWindow("PH Capture", 0, 0, 0, 320, 240, Picture1.hwnd, 0)
      DoEvents
      SendMessage lngHwnd, 1034, 0, 0
      SendMessage lngHwnd, 1976, 66, 0&
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
      SendMessage lngHwnd, 1035, 0, 0
    End Sub
    
    Private Sub Timer1_Timer()
      SendMessage lngHwnd, 1084, 0, 0
      SendMessage lngHwnd, 1054, 0, 0
      Picture1.Picture = Clipboard.GetData
      Clipboard.Clear
    End Sub
    
    
    

    歡迎參觀我的Blog.NET菜鳥自救會
    2010年12月3日 5:29