| |
|
|
Walter | Posesiones nun erfolgreich Escapi.dll (Extremely Simple Capture API) eingebunden, hacer frente a meiner Laptop-Kamera Bilder aufzunehmen. "ESCAPI es una einfache DLL-Schnittstelle a Verwendung de Videoaufnahmegeräten (meist Webcams ...)". In diesem Ejemplo erzeuge Yo Snapshots y speichere ellos como .jpg.
El DLL hay hier: [...] Infos dazu hier: [...] Yo versuche auch, el DLL hier einzustellen...
$H Windows.ph
' Camera
' 25.4.2023
' Macht Bilder con el Laptop-Kamera en fixen Abständen
' y speichert ellos en el aktuellen Directorio como test.<nr>.jpg
' Hier es eingestellt 1 Bild pro Sekunde, Breite/Höhe 640*480
' El Bilder voluntad vom Start weg de 001 a durchnummeriert y überschreiben el vom letzten Lauf
' Auf el Bildschirm se adecuado, qué aufgenommen se
' Benötigt Escapi.dll V3 Win32 y Windows.ph
declarar dll1&,AnzCam%,capture#,a%,b%,name$
declarar pfad$,i%,b1%, Ende%
declarar hBMP%,BildBuffer#
pfad$=GetDir$("")
' Bildbuffer
dim BildBuffer#,1228800' 640*480*4 Byte
' Schnittstellenstruktur
struct Bild=buff%%,mWidth&,mHeight&' Pointer en el Bild-Buffer, Ancho de imagen, Bildhöhe
dim capture#,Bild
capture#.buff%%=addr(BildBuffer#)
capture#.mWidth&=640
capture#.mHeight&=480
' DLL Escapi
Def ESCAPIDLLVersion(0) !"escapi","ESCAPIDLLVersion"
Def countCaptureDevices(0) !"escapi","countCaptureDevices"
Def deinitCapture(1) !"escapi","deinitCapture"
Def doCapture(1) !"escapi","doCapture"
Def getCaptureDeviceName(3) !"escapi","getCaptureDeviceName"
Def initCOM(0) !"escapi","initCOM"
Def initCapture(2) !"escapi","initCapture"
Def isCaptureDone(1) !"escapi","isCaptureDone"
dll1&=usedll("Escapi.dll")
'messagebox(str$(ESCAPIDLLVersion()),"Escapi Version",0)
AnzCam%=countCaptureDevices()
name$=space$(1024)
'messagebox("Anzahl Kameras gefunden: "+str$(AnzCam%),"Anzahl",0)
getCaptureDeviceName(0,addr(name$),1024)
'messagebox(name$,"Kamera gewählt",0)
a%=initCapture(0, addr(capture#))
Título de la ventana "Fotos de el Laptop-Kamera"
window 700,600
b1%=create("Button",%hwnd,"Beenden",20,500,80,25)
ende%=0
i%=1
Settimer 1000
Mensajes del usuario $10' Abbruch übers Windows-Cruz
whilenot ende%
waitinput
if %UMessage = $10' Abbruch übers Windows-Cruz
ende% = 1
elseif %wmtimer
if a%>0
b%=doCapture(0)
endif
if b%>0
mientras que isCaptureDone(0)=0
wend
endif
hBMP% = ~CreateBitmap(capture#.mWidth&, capture#.mHeight& , 1 , 32 , BildBuffer#)' Mapa de bits de el Bufferdaten erzeugen
DrawPic hBMP%, 20, 0; 0' Kontrollbild al Bildschirm
' Bild speichern
savepic pfad$+"\\test."+format$("000.",i%)+".jpg",hBMP%,75
sleep 10
~DeleteObject(hBMP%)'Speicher de Mapa de bits liberación
inc i%
elseif clicked(b1%)' Ende-Button
ende%=1
endif
Wend
' liberación
killtimer
deinitCapture(0)
disponer capture#, Bildbuffer#
freedll dll1&
|
|
|
| |
|
|