Differenze tra le versioni di "Leggere codici a barre con una webcam mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
 
Il Componente gb.media offre la possibilità di leggere codici a barre mediante una webcam.
 
Il Componente gb.media offre la possibilità di leggere codici a barre mediante una webcam.
  
Di seguito mostriamo un codice utile a detto scopo, usando la Classe ''MediaPipeline'' del Componente gb.media.
+
Di seguito mostriamo un codice utile a detto scopo, usando le Classi ''MediaPipeline'' e ''MediaControl'' del Componente gb.media.
  
 
Fasi necessarie:
 
Fasi necessarie:

Versione attuale delle 14:25, 27 apr 2023

Il Componente gb.media offre la possibilità di leggere codici a barre mediante una webcam.

Di seguito mostriamo un codice utile a detto scopo, usando le Classi MediaPipeline e MediaControl del Componente gb.media.

Fasi necessarie:
- collegare una webcam al computer;
- lanciare il codice;
- avvicinare (...non troppo) il codice a barre alla webcam, cercando (...con pazienza) la distanza e l'inclinazione ottimali.

Private pl As MediaPipeline
Private tb As ToggleButton
Private drar As DrawingArea


Public Sub _new()

 With Me
   .W = 600
   .H = 600
 End With
  
 drar = New DrawingArea(Me)
 drar.Background = Color.Transparent
  
 With tb = New ToggleButton(Me) As "Tasto"
   .X = 500
   .Y = 550
   .W = 80
   .H = 40
   .Text = "Avvia"
 End With
  
End

Public Sub Form_Open()

 Dim src, con, zbr, snk As MediaControl

 pl = New MediaPipeline As "Pipeline"
   
 src = New MediaControl(pl, "v4l2src")
 con = New MediaControl(pl, "videoconvert")
 zbr = New MediaControl(pl, "zbar")
 snk = New MediaControl(pl, "xvimagesink")
   
 src.LinkTo(con)
 con.LinkTo(zbr)
 zbr.LinkTo(snk)

 snk.SetWindow(drar)

End

Public Sub Tasto_Click()

 If tb.Value Then
   pl.Play()
   tb.Text = "Chiudi"
 Else
   pl.Stop()
   pl.Close()
   Me.Close
 Endif

End

Public Sub Pipeline_Event(Message As MediaMessage)

 Dim b As Byte

 If Message.Name = "barcode" Then
   For b = 1 To Message.count - 1
     With Message
       Print .Keys[b], Message[.Keys[b]],
     End With
   Next
   Print
 Endif

End