Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Simpático efecto caleidoscópico de una imagen PNG con el Componente gb.media
#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:
GAMBAS
  1. Private pl As MediaPipeline
  2.  
  3.  
  4. Public Sub _new()
  5.  
  6.  
  7.    imm = "/ruta/del/archivo/imagen.png"
  8.  
  9.    w = ImageStat(imm).Width
  10.    h = ImageStat(imm).Height
  11.  
  12.    With Me
  13.      .W = w + 200
  14.      .H = w + 100
  15.    End With
  16.  
  17.    With tb = New ToggleButton(Me) As "Tasto"
  18.      .X = Me.w - 30
  19.      .Y = 10
  20.      .W = 30
  21.      .H = 40
  22.      .Text = "Start"
  23.    End With
  24.  
  25.    With dr = New DrawingArea(Me)
  26.      .X = 0
  27.      .Y = 0
  28.      .W = w
  29.      .H = h
  30.    End With
  31.  
  32.  
  33.  
  34. Public Sub Form_Open()
  35.  
  36.   Dim src, pdc, kal, con1, frz, con2, snk As MediaControl
  37.  
  38.    pl = New MediaPipeline
  39.  
  40.    src = New MediaControl(pl, "filesrc")
  41.    src["location"] = imm
  42.    pdc = New MediaControl(pl, "pngdec")
  43.    kal = New MediaControl(pl, "kaleidoscope")
  44.    kal["angle"] = Rad(45)
  45.    kal["angle2"] = Rad(140)
  46.    kal["sides"] = 10
  47.    con1 = New MediaControl(pl, "videoconvert")
  48.    frz = New MediaControl(pl, "imagefreeze")
  49.    con2 = New MediaControl(pl, "videoconvert")
  50.    snk = New MediaControl(pl, "xvimagesink")
  51.  
  52.    src.LinkTo(pdc)
  53.    pdc.LinkTo(kal)
  54.    kal.LinkTo(con1)
  55.    con1.LinkTo(frz)
  56.    frz.LinkTo(con2)
  57.    con2.LinkTo(snk)
  58.  
  59.    snk.SetWindow(dr)
  60.  
  61.  
  62.  
  63. Public Sub Tasto_Click()          ' _
  64.  
  65.  If tb.Value Then
  66.    pl.Play()
  67.    tb.Text = "Stop"
  68.    pl.Stop()
  69.    pl.Close()
  70.    Me.Close
  71.  



"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#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.
    ¡Gracias!
#3

Eh, sì, tincho, usando GTK, la imagen se agranda mucho. Confused

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)