elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  capture cam web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: capture cam web  (Leído 5,786 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: capture cam web
« Respuesta #10 en: 22 Febrero 2010, 04:09 am »

yo uso esto no es lo mejor porque guarda la imagen en un archivo y depues la lee nuevamente, pero es mejor que el portapapeles.

Código
  1. Private Const GET_FRAME As Long = 1084
  2. Private Const WM_USER = &H400
  3. Private Const WM_CAP_START = WM_USER
  4. Private Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25
  5.  

Código
  1. Public Function GetFrameWebCam() As StdPicture
  2.    On Error Resume Next
  3.    Dim Nombre As String
  4.    If mCapHwnd <> 0 Then
  5.        Nombre = StrConv(App.Path & "\TMPfoto.bmp", vbFromUnicode)
  6.        SendMessage mCapHwnd, GET_FRAME, ByVal 0, ByVal 0
  7.        SendMessage mCapHwnd, WM_CAP_FILE_SAVEDIB, 0, StrPtr(Nombre)
  8.        Set GetFrameWebCam = LoadPicture(App.Path & "\TMPfoto.bmp")
  9.        Kill App.Path & "\TMPfoto.bmp"
  10.    End If
  11. End Function

despues para la rutina de analizar la imagen utilizo esto metodo que es mucho mas rapido que usar getpixel

Código
  1. Option Explicit
  2. Private Declare Function OleTranslateColor Lib "OLEPRO32.DLL" (ByVal OLE_COLOR As Long, ByVal HPALETTE As Long, pccolorref As Long) As Long
  3. Private Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
  4. Private Declare Function VarPtrArray Lib "msvbvm50.dll" Alias "VarPtr" (Ptr() As Any) As Long
  5. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
  6.  
  7. Private Type SAFEARRAYBOUND
  8.    cElements           As Long
  9.    lLbound             As Long
  10. End Type
  11.  
  12. Private Type SAFEARRAY2D
  13.    cDims               As Integer
  14.    fFeatures           As Integer
  15.    cbElements          As Long
  16.    cLocks              As Long
  17.    pvData              As Long
  18.    Bounds(0 To 1)      As SAFEARRAYBOUND
  19. End Type
  20.  
  21. Private Type BITMAP
  22.  bmType                As Long
  23.  bmWidth               As Long
  24.  bmHeight              As Long
  25.  bmWidthBytes          As Long
  26.  bmPlanes              As Integer
  27.  bmBitsPixel           As Integer
  28.  bmBits                As Long
  29. End Type
  30.  
  31.  
  32. Public Sub AnalizeCapture(ByVal hBmp As StdPicture)
  33.  
  34.    Dim bDib()          As Byte
  35.    Dim X As Long, Y    As Long
  36.    Dim xEnd            As Long
  37.    Dim SA              As SAFEARRAY2D
  38.    Dim tBmp            As BITMAP
  39.    Dim R As Byte, G As Byte, B As Byte
  40.  
  41.    GetObjectAPI hBmp, Len(tBmp), tBmp
  42.  
  43.    With SA
  44.        .cbElements = 1
  45.        .cDims = 2
  46.        .Bounds(0).lLbound = 0
  47.        .Bounds(0).cElements = tBmp.bmHeight
  48.        .Bounds(1).lLbound = 0
  49.        .Bounds(1).cElements = tBmp.bmWidthBytes
  50.        .pvData = tBmp.bmBits
  51.    End With
  52.  
  53.    CopyMemory ByVal VarPtrArray(bDib), VarPtr(SA), 4
  54.  
  55.    xEnd = (tBmp.bmWidth - 1) * 3
  56.  
  57.    For Y = 0 To tBmp.bmHeight - 1
  58.        For X = 0 To xEnd Step 3
  59.            B = CLng(bDib(X, Y))
  60.            G = CLng(bDib(X + 1, Y))
  61.            R = CLng(bDib(X + 2, Y))
  62.  
  63.            'Debug.Print r,g,b
  64.        Next
  65.    Next
  66.  
  67.    CopyMemory ByVal VarPtrArray(bDib), 0&, 4
  68.  
  69. End Sub
  70.  


osea tendrias que llamar todo asi

Código:
call AnalizeCapture(GetFrameWebCam)

y bueno despues vos hace el resto.


En línea

<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re: capture cam web
« Respuesta #11 en: 22 Febrero 2010, 04:14 am »


hola  LeandroA voy a probar en una de esas locas casualidades va..jaja


el codigo que hice es para detectar una forma y ver como se mueve con la camara tendria q ser muy rapido.. si alguien tiene algomas directo gracias!


En línea

<[(x)]>
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Webcam Capture By C@$P€®
Programación Visual Basic
skyweb07 6 4,164 Último mensaje 27 Noviembre 2010, 06:47 am
por BlackZeroX
Commview capture files
Wireless en Windows
SasKeee 1 3,566 Último mensaje 6 Noviembre 2011, 04:44 am
por jorge.915
[PHP] IP Capture 0.2
PHP
BigBear 1 2,445 Último mensaje 13 Febrero 2014, 21:36 pm
por el_junior
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines