Differenze tra le versioni di "Convertire i formati immagine mediante il Componente gb.media"
(5 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 5: | Riga 5: | ||
===Conversione immagine da un qualunque formato al formato BMP=== | ===Conversione immagine da un qualunque formato al formato BMP=== | ||
− | + | Private bo As Boolean | |
− | Dim pl As | + | |
+ | Public Sub Main() | ||
+ | |||
+ | Dim pl As MediaPipeline | ||
Dim src, deb, vdc, enc, snk As MediaControl | Dim src, deb, vdc, enc, snk As MediaControl | ||
− | |||
− | |||
− | + | pl = New MediaPipeline As "PLine" | |
src = New MediaControl(pl, "filesrc") | src = New MediaControl(pl, "filesrc") | ||
− | src["location"] = "<FONT Color= | + | src["location"] = "<FONT Color=darkgreen>''/percorso/del/file/immagine''</font>" |
deb = New MediaControl(pl, "<FONT Color=#B22222>decodebin</font>") | deb = New MediaControl(pl, "<FONT Color=#B22222>decodebin</font>") | ||
vdc = New MediaControl(pl, "videoconvert") | vdc = New MediaControl(pl, "videoconvert") | ||
enc = New MediaControl(pl, "<FONT Color=#B22222>avenc_bmp</font>") | enc = New MediaControl(pl, "<FONT Color=#B22222>avenc_bmp</font>") | ||
snk = New MediaControl(pl, "filesink") | snk = New MediaControl(pl, "filesink") | ||
− | snk["location"] = | + | snk["location"] = "/tmp/immagine.bmp" |
<FONT Color=gray>' ''Colleghiamo fra loro all'interno della pipeline gli oggetti MediaControl impostati:''</font> | <FONT Color=gray>' ''Colleghiamo fra loro all'interno della pipeline gli oggetti MediaControl impostati:''</font> | ||
Riga 30: | Riga 31: | ||
pl.Play() | pl.Play() | ||
− | + | While Not bo | |
− | + | Wait 0.01 | |
− | Wait 0. | + | Wend |
− | |||
− | |||
− | |||
+ | pl.Stop | ||
pl.Close | pl.Close | ||
− | ''' | + | End |
+ | |||
+ | |||
+ | Public Sub PLine_End() <FONT Color=gray>' ''Questo Evento viene sollevato, quando la conversione è terminata''</font> | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | End | ||
===Conversione immagine nel formato JPG=== | ===Conversione immagine nel formato JPG=== | ||
Riga 45: | Riga 51: | ||
...... | ...... | ||
enc = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>") | enc = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
...... | ...... | ||
Riga 57: | Riga 57: | ||
...... | ...... | ||
enc = New MediaControl(pl, "<FONT Color=#B22222>pngenc</font>") | enc = New MediaControl(pl, "<FONT Color=#B22222>pngenc</font>") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
...... | ...... | ||
Riga 70: | Riga 64: | ||
...... | ...... | ||
enc = New MediaControl(pl, "<FONT Color=#B22222>avenc_tiff</font>") | enc = New MediaControl(pl, "<FONT Color=#B22222>avenc_tiff</font>") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
...... | ...... | ||
Riga 85: | Riga 73: | ||
Per convertire il formato "webp", possiamo utilizzare il plugin "webpdec" di GSreamer. | Per convertire il formato "webp", possiamo utilizzare il plugin "webpdec" di GSreamer. | ||
<BR>Mostriamo un esempio, nel quale un file immagine di formato "webp" sarà convertito in formato "png": | <BR>Mostriamo un esempio, nel quale un file immagine di formato "webp" sarà convertito in formato "png": | ||
+ | Private bo As Boolean | ||
+ | |||
+ | |||
Public Sub Main() | Public Sub Main() | ||
− | Dim pl As | + | Dim pl As MediaPipeline |
Dim src, web, vdc, enc, snk As MediaControl | Dim src, web, vdc, enc, snk As MediaControl | ||
− | |||
− | |||
− | + | pl = New MediaPipeline As "PLine" | |
src = New MediaControl(pl, "filesrc") | src = New MediaControl(pl, "filesrc") | ||
− | src["location"] = "<FONT Color= | + | src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.webp''</font>" |
web = New MediaControl(pl, "<FONT Color=#B22222>webpdec</font>") | web = New MediaControl(pl, "<FONT Color=#B22222>webpdec</font>") | ||
vdc = New MediaControl(pl, "videoconvert") | vdc = New MediaControl(pl, "videoconvert") | ||
enc = New MediaControl(pl, "pngenc") | enc = New MediaControl(pl, "pngenc") | ||
snk = New MediaControl(pl, "filesink") | snk = New MediaControl(pl, "filesink") | ||
− | snk["location"] = | + | snk["location"] = "/tmp/immagine.png" |
src.LinkTo(web) | src.LinkTo(web) | ||
Riga 108: | Riga 97: | ||
pl.Play() | pl.Play() | ||
− | + | ||
− | + | While Not bo | |
+ | Wait 0.01 | ||
+ | Wend | ||
+ | |||
+ | pl.Stop | ||
+ | pl.Close | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub PLine_End() | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Convertire il formato immagine "png"=== | ||
+ | Per convertire il formato "png", possiamo utilizzare il plugin "pngdec" di GSreamer. | ||
+ | <BR>Mostriamo un esempio, nel quale un file immagine di formato "png" sarà convertito in formato "jpeg": | ||
+ | Private bo As Boolean | ||
+ | |||
+ | |||
+ | Public Sub Main() | ||
+ | |||
+ | Dim pl As MediaPipeline | ||
+ | Dim src, png, vdc, enc, snk As MediaControl | ||
+ | |||
+ | pl = New MediaPipeline As "PLine" | ||
+ | |||
+ | src = New MediaControl(pl, "filesrc") | ||
+ | src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.png''</font>" | ||
+ | png = New MediaControl(pl, "<FONT Color=#B22222>pngdec</font>") | ||
+ | vdc = New MediaControl(pl, "videoconvert") | ||
+ | enc = New MediaControl(pl, "jpegenc") | ||
+ | snk = New MediaControl(pl, "filesink") | ||
+ | snk["location"] = "/tmp/immagine.jpg" | ||
+ | |||
+ | src.LinkTo(png) | ||
+ | png.LinkTo(vdc) | ||
+ | vdc.LinkTo(enc) | ||
+ | enc.LinkTo(snk) | ||
+ | |||
+ | pl.Play() | ||
+ | |||
+ | While Not bo | ||
Wait 0.01 | Wait 0.01 | ||
− | + | Wend | |
+ | |||
+ | pl.Stop | ||
+ | pl.Close | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub PLine_End() | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Convertire il formato immagine "jpeg"=== | ||
+ | Per convertire il formato "jpeg", possiamo utilizzare il plugin "jpegdec" di GSreamer. | ||
+ | <BR>Mostriamo un esempio, nel quale un file immagine di formato "jpeg" sarà convertito in formato "png": | ||
+ | Private bo As Boolean | ||
− | |||
+ | Public Sub Main() | ||
+ | |||
+ | Dim pl As MediaPipeline | ||
+ | Dim src, jpg, vdc, enc, snk As MediaControl | ||
+ | |||
+ | pl = New MediaPipeline As "PLine" | ||
+ | |||
+ | src = New MediaControl(pl, "filesrc") | ||
+ | src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.jpg''</font>" | ||
+ | png = New MediaControl(pl, "<FONT Color=#B22222>jpegdec</font>") | ||
+ | vdc = New MediaControl(pl, "videoconvert") | ||
+ | enc = New MediaControl(pl, "pngenc") | ||
+ | snk = New MediaControl(pl, "filesink") | ||
+ | snk["location"] = "/tmp/immagine.png" | ||
+ | |||
+ | src.LinkTo(jpg) | ||
+ | jpg.LinkTo(vdc) | ||
+ | vdc.LinkTo(enc) | ||
+ | enc.LinkTo(snk) | ||
+ | |||
+ | pl.Play() | ||
+ | |||
+ | While Not bo | ||
+ | Wait 0.01 | ||
+ | Wend | ||
+ | |||
+ | pl.Stop | ||
pl.Close | pl.Close | ||
End | End | ||
+ | |||
+ | |||
+ | Public Sub PLine_End() | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Convertire il formato immagine "gif"=== | ||
+ | Per convertire il formato "gif", rinviamo alla seguente pagina: [[Convertire un file GIF in un file di formato OGV, Matroska e MP4 mediante il Componente gb.media]] |
Versione attuale delle 07:21, 18 gen 2024
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.
Usando il plugin generico "decodebin"
Per effettuare la conversione, useremo il plugin generico "decodebin" di GStreamer.
Conversione immagine da un qualunque formato al formato BMP
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, deb, vdc, enc, snk As MediaControl pl = New MediaPipeline As "PLine" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file/immagine" deb = New MediaControl(pl, "decodebin") vdc = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "avenc_bmp") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/immagine.bmp" ' 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() While Not bo Wait 0.01 Wend pl.Stop pl.Close End Public Sub PLine_End() ' Questo Evento viene sollevato, quando la conversione è terminata bo = True 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") ......
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") ......
Conversione immagine nel formato TIFF
Riprendendo il primo codice, bisognerà sostituire le seguenti righe di comando a quelle corrispondenti in quel codice.
Ovviamente in tal caso il file originario, da convertire, sarà di formato diverso dal TIFF.
...... enc = New MediaControl(pl, "avenc_tiff") ......
Usando specifici plugin di GStreamer
si potranno usare anche plugin specifici per formato da convertire.
Convertire il formato immagine "webp"
Per convertire il formato "webp", possiamo utilizzare il plugin "webpdec" di GSreamer.
Mostriamo un esempio, nel quale un file immagine di formato "webp" sarà convertito in formato "png":
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, web, vdc, enc, snk As MediaControl pl = New MediaPipeline As "PLine" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.webp" web = New MediaControl(pl, "webpdec") vdc = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "pngenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/immagine.png" src.LinkTo(web) web.LinkTo(vdc) vdc.LinkTo(enc) enc.LinkTo(snk) pl.Play() While Not bo Wait 0.01 Wend pl.Stop pl.Close End Public Sub PLine_End() bo = True End
Convertire il formato immagine "png"
Per convertire il formato "png", possiamo utilizzare il plugin "pngdec" di GSreamer.
Mostriamo un esempio, nel quale un file immagine di formato "png" sarà convertito in formato "jpeg":
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, png, vdc, enc, snk As MediaControl pl = New MediaPipeline As "PLine" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.png" png = New MediaControl(pl, "pngdec") vdc = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "jpegenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/immagine.jpg" src.LinkTo(png) png.LinkTo(vdc) vdc.LinkTo(enc) enc.LinkTo(snk) pl.Play() While Not bo Wait 0.01 Wend pl.Stop pl.Close End Public Sub PLine_End() bo = True End
Convertire il formato immagine "jpeg"
Per convertire il formato "jpeg", possiamo utilizzare il plugin "jpegdec" di GSreamer.
Mostriamo un esempio, nel quale un file immagine di formato "jpeg" sarà convertito in formato "png":
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, jpg, vdc, enc, snk As MediaControl pl = New MediaPipeline As "PLine" src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.jpg" png = New MediaControl(pl, "jpegdec") vdc = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "pngenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/immagine.png" src.LinkTo(jpg) jpg.LinkTo(vdc) vdc.LinkTo(enc) enc.LinkTo(snk) pl.Play() While Not bo Wait 0.01 Wend pl.Stop pl.Close End Public Sub PLine_End() bo = True End
Convertire il formato immagine "gif"
Per convertire il formato "gif", rinviamo alla seguente pagina: Convertire un file GIF in un file di formato OGV, Matroska e MP4 mediante il Componente gb.media