Differenze tra le versioni di "Convertire i formati immagine mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 40: Riga 40:
 
  '''End'''
 
  '''End'''
  
====Conversione immagine dal formato TIFF al formato JPG====
+
====Conversione immagine nel formato JPG====
 
Riprendendo il codice precedente, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:
 
Riprendendo il codice precedente, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:
 
  ......
 
  ......
Riga 52: Riga 52:
 
  ......
 
  ......
  
====Conversione immagine dal formato TIFF al formato PNG====
+
====Conversione immagine nel formato PNG====
 
Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:
 
Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:
 
  ......
 
  ......
Riga 62: Riga 62:
 
   
 
   
 
  Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>png</font>"
 
  Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>png</font>"
 +
......
 +
 +
====Conversione immagine nel formato TIFF====
 +
Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:
 +
......
 +
enc = New MediaControl(pl, "<FONT Color=#B22222>avenc_tiff</font>")
 +
......
 +
pl.play
 +
 +
Wait 5
 +
 +
Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>tif</font>"
 
  ......
 
  ......

Versione delle 17:24, 11 mar 2022

Utilizzando i plugin di GStreamer con le Classi MediaControl e MediaPipeline del Componente gb.media, è possibile effettuare diverse conversioni di file immagine da un formato ad un altro.

Mostriamo di seguito qualche esempio pratico.

Conversione immagine dal formato TIFF al formato BMP

Private Const PRIMOFILE As String = "/tmp/primofile"


Public Sub Main()
 
 Dim pl As New MediaPipeline
 Dim src, deb, vdc, enc, snk As MediaControl
 Dim i As Integer
  
 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file.tif"
 deb = New MediaControl(pl, "decodebin")
 vdc = New MediaControl(pl, "videoconvert")
 enc = New MediaControl(pl, "avenc_bmp")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = PRIMOFILE
  
' Colleghiamo fra loro all'interno della pipeline gli oggetti MediaControl impostati:
 src.LinkTo(deb)
 deb.LinkLaterTo(vdc)
 vdc.LinkTo(enc)
 enc.LinkTo(snk)
 
 pl.Play()
  
 Repeat 
   i = Stat(PRIMOFILE).Size
   Wait 0.7
 Until Stat(PRIMOFILE).Size == i
 
 Copy PRIMOFILE To "/tmp/immagine.bmp"
 
 pl.Close
  
End

Conversione immagine nel formato JPG

Riprendendo il codice precedente, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:

......
enc = New MediaControl(pl, "jpegenc")
......
Repeat 
  Wait 0.01
Until Right(File.Load(PRIMOFILE), SizeOf(gb.Short)) = MkShort(&D9FF)

Copy PRIMOFILE To "/tmp/immagine.jpg"
......

Conversione immagine nel formato PNG

Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:

......
enc = New MediaControl(pl, "pngenc")
......
Repeat 
  Wait 0.01
Until Right(File.Load(PRIMOFILE), SizeOf(gb.Integer)) = MkInt(&826042AE)

Copy PRIMOFILE To "/tmp/immagine.png"
......

Conversione immagine nel formato TIFF

Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice:

......
enc = New MediaControl(pl, "avenc_tiff")
......
pl.play

Wait 5

Copy PRIMOFILE To "/tmp/immagine.tif"
......