Wenas
Esto que quiero hacer ya lo vi hacerlo hace unos años, pero no lo hice yo, asi que no se por donde empezar
Lo que quiero hacer es "simplemente" desde un formulario de VB ver en tiempo real las imagenes de una webcam (en este casi, una AIPTEK).
Se que mi profesor de VB se bajo de la web oficiald su webcam un control que hacia eso, pero para esta no lo encuentro
¿Como lo hago?
Nos vemos y gracias
PD: esto es para empezar, luego quiero poder capturar, control de brillo... pero eso cuando consiga verlo al menos :P
Creo que lo que buscas es un control ActiveX para controlar la cámara. Lo puedes encontrar en:
http://www.shrinkwrapvb.com/ezvidcap.htm
Viene el control ActiveX, con un programa de ejemplo completo y su documentación. Ese programa, en su tiempo, lo modifiqué completamente para hacer un CamSpy, haciendo capturas de la cámara cada cierto intervalo de tiempo y enviándolas por TCP/IP incluyendo la fecha de la captura en la imagen.
Saludos!!
Tambien, podes bajarte ICImagingControl
www.icimagingcontrol.com
El problema es que es trial por 2 meses.
Saludos
Muchas gracias a los 2, eso es exactamente loq ue buscaba ;)
Citarlo modifiqué completamente para hacer un CamSpy
Y no será GPL no? ::)
Ahora veo en la web de IC Imaging Control esta imagen:
(http://www.imagingcontrol.com/ic/images/ic_ad_web.gif)
y pienso: "coño! si eso es exactamente loq ue quiero hacer!!"
Os explico: es para hacer un software de Astrofotografía, donde la webcam saca imagenes y debo poner un "punto de mira" a una estrella para seguirla manualmente. Como podría hacer que el punto de mira se pusiese donde yo quiera, y el video siguiera normal?
Un saludo y gracias de nuevo
La IC trae mucha documentacion y ejemplos, leelos.
Por si les interesa como se hace usando la Api miren el siguiente post:
http://foro.elhacker.net/index.php/topic,75096.msg345832.html#msg345832
Ya estoy trateando con el ICImagingControl, y tengo el primer problema
Inserto el codigo siguiente:
Private Sub Form_Load()
ICImagingControl1.Device = "AIPTEK PenCam"
ICImagingControl1.VideoFormat = "CIF (352x288)"
ICImagingControl1.LiveStart
End Sub
Y al ejecutarlo me dice que no se encuentra el dispositivo, que mire las conexiones del cable
¿Alguna idea de por que pasa esto?
"AIPTEK PenCam", seguro que se llama haci?
Hace una cosa. borra la linea de codigo:
ICImagingControl1.Device = "AIPTEK PenCam"
Ahora, anda a las propiedades del control. en la propiedad Device, desplega la lista. Te salen todas las camaras posibles. Haci no le erras.
Saludos
Modulo------ ModWebcam
Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public 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
Public mCapHwnd As Long
Public Const CONNECT As Long = 1034
Public Const DISCONNECT As Long = 1035
Public Const GET_FRAME As Long = 1084
Public Const COPY As Long = 1054
------------------------------------------------
Resto de codigo
--------------------
Private Sub cmdStart_Click()
cmdStart.Enabled = False
cmdStop.Enabled = True
mCapHwnd = capCreateCaptureWindow("WebcamCapture", 0, 0, 0, 320, 240, Me.hwnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0
tmrMain.Enabled = True
End Sub
Private Sub cmdStop_Click()
cmdStart.Enabled = True
cmdStop.Enabled = False
tmrMain.Enabled = False
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If cmdStop.Enabled = False Then
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End If
End Sub
Private Sub tmrMain_Timer()
On Error Resume Next
SendMessage mCapHwnd, GET_FRAME, 0, 0
SendMessage mCapHwnd, COPY, 0, 0
picOutput.Picture = Clipboard.GetData
Clipboard.Clear
End Sub
'' Espero que sea de utilidad y orientacion