Differenze tra le versioni di "Convertire i formati immagine mediante il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 45: | Riga 45: | ||
enc = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>") | enc = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>") | ||
...... | ...... | ||
+ | Repeat | ||
+ | Wait 0.01 | ||
+ | Until Right(File.Load(PRIMOFILE), SizeOf(gb.Short)) = MkShort(&D9FF) | ||
+ | |||
Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>jpg</font>" | Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>jpg</font>" | ||
...... | ...... | ||
Riga 55: | Riga 59: | ||
Repeat | Repeat | ||
Wait 0.01 | Wait 0.01 | ||
− | Until Right(File.Load(PRIMOFILE), | + | Until Right(File.Load(PRIMOFILE), SizeOf(gb.Integer)) = MkInt(&826042AE) |
Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>png</font>" | Copy PRIMOFILE To "/tmp/immagine.<FONT Color=#B22222>png</font>" | ||
...... | ...... |
Versione delle 17:11, 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 dal formato TIFF al 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 dal formato TIFF al 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" ......