vuott   15-09-2020, 17:14
#1
Para obtener un efecto caleidoscópico de una imagen de formato PNG con los recursos del Componente gb.media, es necesario utilizar el elemento "kaleidoscope" de la libreria de Gstreamer.

Ejemplo práctico muy sencillo:
Código:
Private tb As ToggleButton
Private dr As DrawingArea
Private imm As String
Private pl As MediaPipeline


Public Sub _new()

  Dim w As Integer
  Dim h As Integer
 
   imm = "/ruta/del/archivo/imagen.png"
 
   w = ImageStat(imm).Width
   h = ImageStat(imm).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
     .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"] = imm
   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)
 
   snk.SetWindow(dr)
 
End


Public Sub Tasto_Click()          ' _
 
 If tb.Value Then
   pl.Play()
   tb.Text = "Stop"
 Else
   pl.Stop()
   pl.Close()
   Me.Close
 Endif
 
End
Última modificación: 15-09-2020, 17:16 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
tincho   16-09-2020, 09:31
#2
Hola Vuott.
Usando el código con gtk y luego con qt, pero es una imagen fija que no cambia en el tiempo. No se si es esl efecto que buscas o algo no va.
Este es con gb.gui en mi caso gtk
[Imagen: 1cAmLoL.png]
Ahora con gb.qt
[Imagen: hzVFUq1.png]

1 Saludo.
vuott   16-09-2020, 10:01
#3
Eh, sì, tincho, usando GTK, la imagen se agranda mucho. Confused

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.