Trasformare un'immagine in ascii art mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.
Versione del 12 ago 2024 alle 18:35 di Vuott (Discussione | contributi) (Creata pagina con "Usando il plugin "aatv" di GStreamer, i file immagini possono essere trasformati in ''[https://it.wikipedia.org/wiki/ASCII_art ascii art]''. Mostriamo un semplice esempio con...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Usando il plugin "aatv" di GStreamer, i file immagini possono essere trasformati in ascii art.

Mostriamo un semplice esempio con applicazione a riga di comando:

Private bo As Boolean


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, dcb, aa, con, png, snk As MediaControl
 Dim filevideo As String
 Dim tm As Date
 
 filevideo = "/percorso/del/file/immagine"

 pl = New MediaPipeline AS "PLine"

 src = New MediaControl(pl, "filesrc")
 src["location"] = filevideo
 dcb = New MediaControl(pl, "decodebin")
 aa = New MediaControl(pl, "aatv")
 con = New MediaControl(pl, "videoconvert")
 png = New MediaControl(pl, "pngenc")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/asciiart.png"

 src.LinkTo(dcb)
 dcb.LinkLaterTo(aa)
 aa.LinkTo(con)
 con.LinkTo(png)
 png.LinkTo(snk)

 pl.Play

 Repeat ' Finché la durata del video non viene rilevata, il ciclo continua
   Wait 0.01
 Until pl.Duration > 0.00
 Print "Durata del video: "; Time(0, 0, 0, pl.Duration * 1000)
 tm = Now
 Repeat 
   Write "\r\e[0mTempo trascorso:  \e[31m" & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond)))
   Wait 0.01
 Until DateDiff(tm, Now, gb.Millisecond) >= (pl.Duration * 1000)

 pl.Stop
 pl.Close

End