Hola, necesito que un PictureBox tenga el fondo transparente, este PictureBox se desplazará delante de otro PictureBox y no quiere que lo tape completamente sino solo en las regiones donde no es transparente. Como se puede hacer? Alguien sabe?
Saludos!
PictureBox Con Fondo Transparente. Como Hago?
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Pues hombre, no se bien como funciona eso del color máscara pero entiendo que es para eso. Yo de gráficos no puedo opinar porque nunca trabajo con ellos.
Lo que se me ocurre es que lo que pongas encima sea un gif en vez de un jpg y así puedes utilizar las transparencias que los gif permiten.
Lo que se me ocurre es que lo que pongas encima sea un gif en vez de un jpg y así puedes utilizar las transparencias que los gif permiten.
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Soplo: El PictureBox no tiene propiedad mask, el que si tiene es el form, pero es para que se puede ver detras del formulario, es decir que color no se va a mostrar y será transparente. Estoy utilizando png con transparencia pero el PictureBox colorea el area de transparencia con su BackGround color.
Se me ocurrio en vez de usar un PictureBox usar un form, es decir un form que se mueva arriba del otro form. Funciona, pero se me complica porque entre otras cosas, si se arrastra la ventana de atras el form transparente queda descolgado, fuera de posicion.
Haciendo esto:
formtransp = new Form(FMain)
Logro que el form transparente permanezca en el interior del form pero el area transparente ahora pasa a ser negro.
Y con DrawingArea tampoco es posible.
Saludos!
Se me ocurrio en vez de usar un PictureBox usar un form, es decir un form que se mueva arriba del otro form. Funciona, pero se me complica porque entre otras cosas, si se arrastra la ventana de atras el form transparente queda descolgado, fuera de posicion.
Haciendo esto:
formtransp = new Form(FMain)
Logro que el form transparente permanezca en el interior del form pero el area transparente ahora pasa a ser negro.
Y con DrawingArea tampoco es posible.
Saludos!
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Ya lo solucione, en la documentación decía que en un futuro Cairo o QT4 implementarían transparencia. Así que reemplace el componente gb.GUI por gb.QT4.
Saludos!
Saludos!
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Perfecto, pero tu solución sólo es válida para Gambas3. En Gambas2 no es posible hacerlo, ya que no existe el componente gb.qt4.
Saludos
Saludos
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Así es, me olvide decir que estaba trabajando en gambas 2.99.
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Mira, ahora mismo tengo este problema, iba a preguntar sobre él pero veo que ya te me has adelantado.
No entiendo como no funciona las transparencias, en el editor de imagen del propio gambas se ve transparente pero lo rellena con el color de fondo... Quería hacer un juego sencillo con una bola y dos palas (pong) y como una imagen se superpondrá a otra necesito esto.
¿Existe algún método alternativo a esto?
No entiendo como no funciona las transparencias, en el editor de imagen del propio gambas se ve transparente pero lo rellena con el color de fondo... Quería hacer un juego sencillo con una bola y dos palas (pong) y como una imagen se superpondrá a otra necesito esto.
¿Existe algún método alternativo a esto?
Objetivo: Re: PictureBox Con Fondo Transparente. Como Hago?
Lo he intentado de muchas formas y ninguna me conformaba, por eso abrí este tema. La que mas o menos me convenció (quitando lo de utilizar QT4) fue mediante un DrawingArea. Lo que se me ocurrió es algo así:
PUBLIC SUB DondeSea()
Draw.Begin(DrawingArea1)
Draw.Clear
Draw.Picture(PictureBox2.Picture, 0, 0)
Draw.Picture(picturebox1.picture, 0, 0)
Draw.End
DrawingArea1.Move(DrawingArea1.x + 10, DrawingArea1.y)
END
Lo que logras es que el DrawingArea primero quede limpio, sin contenido (.Clear), luego dibujas dentro el contenido del PicturBox2 (lo que seria el fondo o el piso o incluso que sector del PictureBox quieres) y a continuación arriba dibujas el contenido que va sobre el fondo, este sí puede tener transparencia y va a quedar muy bien.
Espero que se entienda la idea. Saludos!
PUBLIC SUB DondeSea()
Draw.Begin(DrawingArea1)
Draw.Clear
Draw.Picture(PictureBox2.Picture, 0, 0)
Draw.Picture(picturebox1.picture, 0, 0)
Draw.End
DrawingArea1.Move(DrawingArea1.x + 10, DrawingArea1.y)
END
Lo que logras es que el DrawingArea primero quede limpio, sin contenido (.Clear), luego dibujas dentro el contenido del PicturBox2 (lo que seria el fondo o el piso o incluso que sector del PictureBox quieres) y a continuación arriba dibujas el contenido que va sobre el fondo, este sí puede tener transparencia y va a quedar muy bien.
Espero que se entienda la idea. Saludos!
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4303s (PHP: -85% SQL: 185%)
Consultas SQL: 45 - Debug off - GZIP Activado