Differenze tra le versioni di "Gestione delle immagini mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Il Componente ''gb.media'' ci permette, fra l'altro, di mostrare file immagine con le medesime modalità e opportunità previste per i file video.
+
#REDIRECT [[Guide_della_comunità#Gestione_delle_immagini_con_il_Componente_gb.media]]
 
 
 
 
==Uso della Classe ''MediaPlayer''==
 
Innanzitutto possiamo utilizzare la Classe "''MediaPlayer''" per un breve codice e per una veloce soluzione. Potremo mostrare l'immegine all'interno di un oggetto GUI nativo di Gambas, oppure all'interno di una finestra esterna creata automaticamente dalle risorse del Componente ''gb.media'' .
 
 
 
===Mostrare l'immagine all'interno di un oggetto GUI===
 
Rispetto alla consueta modalità di caricare e di mostrare file immagine mediante la Classe ''PictureBox'', le risorse del Componente ''gb.media'' ci consentono di mostrare l'immagine in qualsiasi oggetto che abbia una superficie.
 
 
 
Nell'esempio pratico che segue imposteremo una ''DrawingArea'' come oggetto GUI, nel quale mostrare il file immagine:
 
Private mp As MediaPlayer
 
 
 
 
'''Public''' Sub Form_Open()
 
 
 
  Dim da As DrawingArea
 
   
 
<FONT Color=gray>' ''Crea una "DrawingArea" come oggetto GUI da usare per l'uscita immagine'':</font>
 
  With da = New DrawingArea(Me)
 
    .X = 10
 
    .Y = 10
 
    .W = 300
 
    .H = 300
 
  End With
 
 
 
  With mp = New MediaPlayer
 
    .URL = Media.URL("<FONT Color=gray>''/percorso/del/file/immagine''</font>")
 
<FONT Color=gray>' ''Imposta il controllo dell'uscita immagine da usare:''</font>
 
    .SetWindow(da)
 
  End With
 
 
 
'''End'''
 
 
 
'''Public''' Sub Button1_Click()
 
 
<FONT Color=gray>' ''Mostra il file immagine:''</font>
 
  mp.Play()
 
   
 
'''End'''
 
 
 
 
 
===Mostrare l'immagine all'interno di una finestra esterna===
 
Possiamo decidere di far mostrare l'immagine all'interno di una finestra esterna al programma Gambas, creata automaticamente della risorse del sistema ''GStreamer'', sul quale si basa il Componente ''gb.media'' .
 
 
 
Di seguito un semplice codice analogo al pecedente:
 
  Private mp As MediaPlayer
 
 
 
 
'''Public''' Sub Form_Open()
 
     
 
  mp = New MediaPlayer
 
  mp.URL = Media.URL("<FONT Color=gray>''/percorso/del/file/immagine''</font>")
 
     
 
'''End'''
 
 
 
'''Public''' Sub Button1_Click()
 
 
<FONT Color=gray>' ''Mostra il file immagine:''</font>
 
  mp.Play()
 
   
 
'''End'''
 
 
 
 
 
==Uso delle Classi ''MediaPipeline'' e ''MediaControl''==
 
Volendo, è possibile utilizzare le Classi "''MediaPipeline''" e "''MediaControl''" del Componente ''gb.media'' anziché quella sopra vista ''Medialayer''.
 
 
 
 
 
===Mostrare un file immagine di formato ''JPEG''===
 
Per mostrare un file immagine di formato "''jpeg''" all'interno della superficie di un Oggetto posto sul ''Form'', possiamo adottare il seguente codice:
 
Private pl As MediaPipeline
 
 
 
'''Public''' Sub Form_Open()
 
 
 
  Dim da As DrawingArea
 
  Dim src, jde, frz, con, sca, xim As MediaControl
 
 
 
<FONT Color=gray>' ''Crea una "DrawingArea" come oggetto GUI da usare per l'uscita immagine'':</font>
 
  With da = New DrawingArea(Me)
 
    .X = 10
 
    .Y = 10
 
    .W = 300
 
    .H = 300
 
  End With
 
 
 
  pl = New MediaPipeline
 
 
 
  src = New MediaControl(pl, "filesrc")
 
  src["location"] = "<FONT Color=gray>''/percorso/del/file/immagine.jpg''</font>"
 
  jde = New MediaControl(pl, "<FONT Color=#B22222>jpegdec</font>")
 
  con = New MediaControl(pl, "videoconvert")
 
  sca = New MediaControl(pl, "videoscale")
 
  xim = New MediaControl(pl, "ximagesink")
 
  xim.SetWindow(da)
 
 
 
<FONT Color=gray>' ''Vengono collegati i vari plug-in di GStreamer utilizzati:''</font>"
 
  src.LinkTo(jde)
 
  jde.LinkTo(con)
 
  con.LinkTo(sca)
 
  sca.LinkTo(xim)
 
   
 
'''End'''
 
 
 
'''Public''' Sub Button1_Click()
 
 
  pl.Play()
 
 
 
'''End'''
 
 
 
 
 
===Mostrare un file immagine di formato ''PNG''===
 
Analogamente al codice precedente, per mostrare un file immagine di formato "''png''" all'interno della superficie di un Oggetto posto sul ''Form'', possiamo adottare il seguente codice:
 
Private pl As MediaPipeline
 
 
 
'''Public''' Sub Form_Open()
 
 
 
  Dim da As DrawingArea
 
  Dim src, jde, frz, con, sca, xim As MediaControl
 
 
 
<FONT Color=gray>' ''Crea una "DrawingArea" come oggetto GUI da usare per l'uscita immagine'':</font>
 
  With da = New DrawingArea(Me)
 
    .X = 10
 
    .Y = 10
 
    .W = 300
 
    .H = 300
 
  End With
 
 
 
  pl = New MediaPipeline
 
 
 
  src = New MediaControl(pl, "filesrc")
 
  src["location"] = "<FONT Color=gray>''/percorso/del/file/immagine.png''</font>"
 
  jde = New MediaControl(pl, "<FONT Color=#B22222>pngdec</font>")
 
  con = New MediaControl(pl, "videoconvert")
 
  sca = New MediaControl(pl, "videoscale")
 
  xim = New MediaControl(pl, "ximagesink")
 
  xim.SetWindow(da)
 
 
 
<FONT Color=gray>' ''Vengono collegati i vari plug-in di GStreamer utilizzati:''</font>"
 
  src.LinkTo(jde)
 
  jde.LinkTo(con)
 
  con.LinkTo(sca)
 
  sca.LinkTo(xim)
 
   
 
'''End'''
 
 
 
'''Public''' Sub Button1_Click()
 
 
  pl.Play()
 
 
 
'''End'''
 
 
 
 
 
===Mostrare un file immagine di formato ''BMP''===
 
Analogamente al codice precedente, per mostrare un file immagine di formato "''bmp''" all'interno della superficie di un Oggetto posto sul ''Form'', possiamo adottare il seguente codice:
 
Private pl As MediaPipeline
 
 
 
'''Public''' Sub Form_Open()
 
 
 
  Dim da As DrawingArea
 
  Dim src, jde, frz, con, sca, xim As MediaControl
 
 
 
<FONT Color=gray>' ''Crea una "DrawingArea" come oggetto GUI da usare per l'uscita immagine'':</font>
 
  With da = New DrawingArea(Me)
 
    .X = 10
 
    .Y = 10
 
    .W = 300
 
    .H = 300
 
  End With
 
 
 
  pl = New MediaPipeline
 
 
 
  src = New MediaControl(pl, "filesrc")
 
  src["location"] = "<FONT Color=gray>''/percorso/del/file/immagine.bmp''</font>"
 
  jde = New MediaControl(pl, "<FONT Color=#B22222>gdkpixbufdec</font>")
 
  con = New MediaControl(pl, "videoconvert")
 
  sca = New MediaControl(pl, "videoscale")
 
  xim = New MediaControl(pl, "ximagesink")
 
  xim.SetWindow(da)
 
 
 
<FONT Color=gray>' ''Vengono collegati i vari plug-in di GStreamer utilizzati:''</font>"
 
  src.LinkTo(jde)
 
  jde.LinkTo(con)
 
  con.LinkTo(sca)
 
  sca.LinkTo(xim)
 
   
 
'''End'''
 
 
 
'''Public''' Sub Button1_Click()
 
 
  pl.Play()
 
 
 
'''End'''
 

Versione attuale delle 07:34, 6 ago 2017