Differenze tra le versioni di "Effetto caleidoscopico di un'immagine PNG con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per ottenere un effetto caleidoscopico di un'immagine di formato PNG con le risorse del Componente ''gb.media'', bisogna utilizzare l'elemento "''kaleidoscope''" della libreri...") |
|||
Riga 4: | Riga 4: | ||
Private tb As ToggleButton | Private tb As ToggleButton | ||
Private dr As DrawingArea | Private dr As DrawingArea | ||
− | Private | + | Private im As String |
Private pl As MediaPipeline | Private pl As MediaPipeline | ||
− | + | Public Sub _new() | |
Dim w As Integer | Dim w As Integer | ||
Dim h As Integer | Dim h As Integer | ||
− | + | im = "<FONT Color=darkgreen>''/percorso/del/file.png''</font>" | |
− | w = ImageStat( | + | w = ImageStat(im).Width |
− | h = ImageStat( | + | h = ImageStat(im).Height |
With Me | With Me | ||
Riga 39: | Riga 39: | ||
End With | End With | ||
− | + | End | |
− | + | Public Sub Form_Open() | |
Dim src, pdc, kal, con1, frz, con2, snk As MediaControl | Dim src, pdc, kal, con1, frz, con2, snk As MediaControl | ||
Riga 49: | Riga 49: | ||
src = New MediaControl(pl, "filesrc") | src = New MediaControl(pl, "filesrc") | ||
− | src["location"] = | + | src["location"] = im |
pdc = New MediaControl(pl, "pngdec") | pdc = New MediaControl(pl, "pngdec") | ||
kal = New MediaControl(pl, "<FONT Color=#B22222>kaleidoscope</font>") | kal = New MediaControl(pl, "<FONT Color=#B22222>kaleidoscope</font>") | ||
Riga 66: | Riga 66: | ||
frz.LinkTo(con2) | frz.LinkTo(con2) | ||
con2.LinkTo(snk) | con2.LinkTo(snk) | ||
− | + | ||
<FONT Color=gray>' ''L'immagine modificata viene mostrata nella "DrawingArea":''</font> | <FONT Color=gray>' ''L'immagine modificata viene mostrata nella "DrawingArea":''</font> | ||
snk.SetWindow(dr) | snk.SetWindow(dr) | ||
− | + | ||
− | + | End | |
− | + | Public Sub Tasto_Click() ' _ | |
If tb.Value Then | If tb.Value Then | ||
Riga 85: | Riga 85: | ||
Endif | Endif | ||
− | + | End |
Versione attuale delle 17:15, 30 giu 2024
Per ottenere un effetto caleidoscopico di un'immagine di formato PNG con le risorse del Componente gb.media, bisogna utilizzare l'elemento "kaleidoscope" della libreria di GStreamer.
Mostriamo un semplice esempio:
Private tb As ToggleButton Private dr As DrawingArea Private im As String Private pl As MediaPipeline Public Sub _new() Dim w As Integer Dim h As Integer im = "/percorso/del/file.png" w = ImageStat(im).Width h = ImageStat(im).Height With Me .W = w + 200 .H = w + 100 End With With tb = New ToggleButton(Me) As "Tasto" .X = Me.w - 30 .Y = 10 .W = 30 .H = 40 .Background = Color.Green .Text = "Start" End With With dr = New DrawingArea(Me) .X = 0 .Y = 0 .W = w .H = h End With End Public Sub Form_Open() Dim src, pdc, kal, con1, frz, con2, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "filesrc") src["location"] = im pdc = New MediaControl(pl, "pngdec") kal = New MediaControl(pl, "kaleidoscope") kal["angle"] = Rad(45) kal["angle2"] = Rad(140) kal["sides"] = 10 con1 = New MediaControl(pl, "videoconvert") frz = New MediaControl(pl, "imagefreeze") con2 = New MediaControl(pl, "videoconvert") snk = New MediaControl(pl, "xvimagesink") src.LinkTo(pdc) pdc.LinkTo(kal) kal.LinkTo(con1) con1.LinkTo(frz) frz.LinkTo(con2) con2.LinkTo(snk) ' L'immagine modificata viene mostrata nella "DrawingArea": snk.SetWindow(dr) End Public Sub Tasto_Click() ' _ If tb.Value Then pl.Play() tb.Background = Color.Red tb.Text = "Stop" Else pl.Stop() pl.Close() Me.Close Endif End