Seite 1 von 1
Barcodes per Webcam mit ZBarCode lesen
Verfasst: 20.10.2018 15:26
von TroaX
Wer nach einer Quick-N-Dirty Möglichkeit sucht, Barcodes per Webcam einzulesen, dem hilft ZBarCode weiter. Diesem programm liegen auch die C-Header, sowie die statischen Bibliotheken bei, um sie fest zu integrieren. Aber das wäre ja nicht Quick-N-Dirty
Hier einmal über das CLI:
Code: Alles auswählen
OpenConsole()
Scanner = RunProgram("C:\Program Files (x86)\ZBar\bin\zbarcam.exe","","",#PB_Program_Open | #PB_Program_Read)
While ProgramRunning(Scanner)
If AvailableProgramOutput(Scanner)
PrintN("Barcode: "+StringField(ReadProgramString(Scanner),2,":")) ; In Index 1 steht der gelesene Barcode-Typ
PrintN("")
Delay(1000)
EndIf
Wend
So sieht es aus:
Hier gibt es das Programm:
http://zbar.sourceforge.net/
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 20.10.2018 19:01
von TroaX
Hier jetzt noch einmal eine Variante mit freier Positionierung des ZBar-Fensters sowie Entfernung des Rahmens. So lässt sich das Fenster als Overlay über die eigene Anwendung legen. Ist alelrdings nicht Crossplattform. Der obige Code schon, da ZBar auch für Linux erhältlich ist. Muss nur der richtige Programmname angegeben werden.
Code: Alles auswählen
EnableExplicit
ExamineDesktops()
OpenConsole()
Define.RECT WinPos
Define.l Scanner, ZBarHandle, SizeX, SizeY
Define.s Income
Scanner = RunProgram("C:\Program Files (x86)\ZBar\bin\zbarcam.exe","","",#PB_Program_Open | #PB_Program_Read)
While Not FindWindow_(0,"ZBar") And ProgramRunning(Scanner)
Delay(10)
Wend
ZBarHandle = FindWindow_(0,"ZBar")
If GetWindowRect_(ZBarHandle,WinPos)
SizeX = WinPos\right - WinPos\left
SizeY = WinPos\bottom - WinPos\top
Else
SizeX = 640
SizeY = 480
EndIf
SetWindowLongPtr_(ZBarHandle, #GWL_STYLE, GetWindowLongPtr_(ZBarHandle, #GWL_STYLE) ! (#WS_DLGFRAME | #WS_BORDER | #WS_SIZEBOX))
MoveWindow_(ZBarHandle,DesktopWidth(0)-SizeX+15,0,SizeX,SizeY,0)
While ProgramRunning(Scanner)
If AvailableProgramOutput(Scanner)
Income = ReadProgramString(Scanner)
PrintN("Barcode: "+StringField(Income,2,":"))
PrintN("Der Barcode-Typ ist: "+StringField(Income,1,":"))
PrintN("")
Delay(500)
EndIf
Wend
Vor allem die Lesegeschwindigkeit und Zuverlässigkeit von QR-Codes macht echt was her
So sieht es aus:
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 22.10.2018 09:46
von dige
@TroaX: Danke für den Tipp. Mich würde spontan interessieren, ob man der Software auch ein Bild übergeben kann?
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 22.10.2018 10:20
von TroaX
Ja läuft dann aber über ZBarIMG und nicht mehr ZBarCam.
Eine Anleitung ist im Archiv bzw. im Programmordner.
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 22.10.2018 18:21
von Omi
Hi,
hier Linux-Beispiele:
Kodieren:
http://www.chabba.de/Linux/Misc/Gadget_QrGenerator.pb
Dekodieren des oben als
/tmp/tmp.png erstellten Codes:
http://www.chabba.de/Linux/Misc/Gadget_QrDecode.pb
Grüße, Charly
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 23.10.2018 09:37
von dige
TroaX hat geschrieben:Ja läuft dann aber über ZBarIMG und nicht mehr ZBarCam.
Habs mir gleich mal geladen - funktioniert super!!! Das sind ja ganz neue Möglichkeiten
Re: Barcodes per Webcam mit ZBarCode lesen
Verfasst: 23.10.2018 14:16
von fabulouspaul
Ich nutze ZBAR schon seit längerem in einem PB Projekt für Recherchen in digitalisierten Dokumenten (DIN A4 und größer) und es funktioniert stabil und schnell.
Als Tip: ich lasse mehrere Instanzen von ZBAR parallel laufen um den Prozess zu beschleunigen - klappt einwandfrei.