Red de conocimiento informático - Material del sitio web - Cómo mostrar imágenes adquiridas por la cámara en tiempo real en la ventana PB

Cómo mostrar imágenes adquiridas por la cámara en tiempo real en la ventana PB

A continuación se muestra un fragmento de código que vi en línea antes, pero que aún no lo he probado.

Usar API para llamar al código fuente de la cámara

/Definir variables

uint lhand

/Definir constantes

largo WM_USER = 1024

largo WM_CAP_START= WM_USER

largo WM_ CAP_STOP = WM_CAP_START + 68

largo WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10

largo WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11

largo WM_CAP_SAVEDIB = WM_CAP_START + 25

largo WM_CAP_GRAB_FRAME = WM_CAP_START + 60

largo WM_CAP_SEQUENCE63

largo WM_CAP_SET_OVERLAY = WM _CAP_START+ 51

largo WM_CAP_SET_PREVIEW =WM_CAP_START+ 50

largo WM_CAP_SET_CALLBACK_VIDEOSTREAM

LARGO WM_CAP_SET_CALLBACK_VIDEOSTREAM =WM_CAP_START +6

LARGO WM_ CAP_SET_CALLBACK_ERR OR = WM_C AP_START +2

LARGO largo WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3

largo WM_CAP_SET_CALLBACK_FRAME= WM_ CAP_START +5

largo WM_CAP_SET_SCALE=WM_CAP_START+53

long WM_CAP_SET_PREVIEWRATE =WM_CAP_START+ 52

// Definir función api

ulong capCreateCaptureWindowA(string lpszWindowName,ulong dwStyle,long x,long y,long nWidth,long nHeight,ulong ParentWin,long nId )BIBLIOTECA 'AVICAP32.DLL'

//Código de inicialización

cadena lpszName

ulong l1

l1=handle(w_main)

lpszName='Interfaz de cámara...

lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824 + 268435456 ,0,0,200,200,l1,0)

si lhand <> 0 entonces

enviar(lhand, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0)

enviar(lhand, WM_CAP_SET_CALLBACK_ERROR, 0, 0)

enviar( mano izquierda, WM_CAP_SET_ CALLBACK_STATUSA, 0, 0)

enviar(mano izquierda,

WM_CAP_DRIVER_CONNECT, 0, 0)

enviar(lado izquierdo,

enviar(lado izquierdo, WM_CAP_SET_SCALE, 1, 0)

enviar(lado izquierdo, WM_CAP_ SET_PREVIEWRATE, 66, 0)

enviar(lhand, WM_CAP_SET_OVERLAY, 1, 0)

enviar(lhand, WM_CAP_SET_PREVIEW, 1, 0)

finalizar si

//guardar en el archivo<

cadena s

s='c.SAVE:\save.avi'

si lhand<>0 entonces

Enviar(lhand,WM_CAP_FILE_SET_CAPTURE_FILEA, 0, s);

Enviar( lhand,WM_CAP_SEQUENCE, 0, 0) //comenzar a capturar

finalizar si

//dejar de guardar

enviar(lhand, WM_CAP_STOP, 0, 0)

/guardar como imagen

cadena s

s='c:\save.bmp'

si lhand <> 0 entonces

Enviar(lhand,WM_CAP_SAVEDIB,0,s);

end if

// Si no tienes una cámara web, puedes descargar el siguiente software que te permitirá tener una cámara web virtual