
Wie ich am unkompliziertesten aus Linien und Punkten, Kreise und Rechtecke bzw. Linien machen kann?
Ich dachte daran, dass ich erst einmal es mit Bildern versuche.
Da die Kanten finde, dann oberhalb und unterhalb einer möglichen Linie zwei eigene zeichne. Und wenn dazwischen eine bestimmte Anzahl von Punkten vorkommt, könnte das eine Linie sein.
Es geht darum, z.B. eine Zeichnung freihand von einem Blatt in GeometrischeFormen zu wandeln.
Aus einem Vieleck, vielleicht einen Kreis, weil es eigentlich einer werden sollte. Vielleicht geht das auch einfacher, wenn man es irgendwie über Mausgestiken versucht.
Hat jemand eine Ahnung, ob es schon Code in Pure für etwas ähnliches gibt?
Und mit welchen Befehlen kann ich folgenden Code benutzen für mein Vorhaben?
Code: Alles auswählen
#WM_CAP_START = #WM_USER
#WM_CAP_SET_CALLBACK_ERROR = #WM_CAP_START + 2
#WM_CAP_SET_CALLBACK_STATUS = #WM_CAP_START + 3
#WM_CAP_SET_CALLBACK_YIELD = #WM_CAP_START + 4
#WM_CAP_SET_CALLBACK_FRAME = #WM_CAP_START + 5
#WM_CAP_SET_CALLBACK_VIDEOSTREAM = #WM_CAP_START + 6
#WM_CAP_SET_CALLBACK_WAVESTREAM = #WM_CAP_START + 7
#WM_CAP_DRIVER_CONNECT = #WM_USER + 10
#WM_CAP_DRIVER_DISCONNECT = #WM_USER + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14
#WM_CAP_DLG_VIDEOFORMAT = #WM_CAP_START + 41
#WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42
#WM_CAP_DLG_VIDEODISPLAY = #WM_CAP_START + 43
#WM_CAP_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_GET_STATUS = #WM_CAP_START + 54
#WM_CAP_FILE_SAVEDIB = #WM_USER + 25
#WM_CAP_SET_SCALE = #WM_USER + 53
#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85
Structure VIDEOHDR
lpData.l
dwBufferLength.l
dwBytesUsed.l
dwTimeCaptured.l
dwUser.l
dwFlags.l
dwReserved.l[3]
EndStructure
Structure CAPSTATUS
uiImageWidth.l
uiImageHeight.l
fLiveWindow.l
fOverlayWindow.l
fScale.l
ptScroll.POINT
fUsingDefaultPalette.l
fAudioHardware.l
fCapFileExists.l
dwCurrentVideoFrame.l
dwCurrentVideoFramesDropped.l
dwCurrentWaveSamples.l
dwCurrentTimeElapsedMS.l
hPalCurrent.l
fCapturingNow.l
dwReturn.l
wNumVideoAllocated.l
wNumAudioAllocated.l
EndStructure
hWnd = OpenWindow(0, 0, 0, 400, 400, #PB_Window_SystemMenu, "WebCamTest")
CreateGadgetList(WindowID())
If OpenLibrary(0, "AVICAP32.DLL")
hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 10, 10, 380, 380, hWnd, 0)
SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT , 0 , 0) ;<- da halt auf den entsprechenden treiber(0-9) ändern
SendMessage_(hWebcam, #WM_CAP_SET_SCALE , 1 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEWRATE , 50, 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW , 1 , 0)
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW , 0, 0)
SendMessage_(hWebcam, #WM_CAP_DRIVER_DISCONNECT, "BLUBBER", 0)
CloseWindow(0)
CloseLibrary(0)
EndIf
End
Ich sehe zwar das Bild, aber wie kann ich z.B. auf den DV-Eingang meines Rechners wechseln oder wenigstens ein Bild von der WebCam speichern bzw. eine Analyse drauf anfangen?
Bitte...
