Error en transparencias, que hago mal?

Started by Erkosone, February 02, 2017, 09:16:48 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Erkosone

Hola, tengo un error en las transparencias, me pasa tanto con imagenes que provienen de archivos fpg como con archivos png cargados directamente con png_load().


Creo haber leido que PixStudio trabaja directamente a 32 bpp verdad? hay que establecer el modo 32 bits de color de alguna manera en el codigo?


Esque no consigo que se vea bien nada..

panreyes

¿Los PNGs están en formato 16bpp, 24bpp o en 8bpp? (8bpp es el FPG de DIV, 16bpp el de Fénix y 32bpp es el que utilizamos ahora)
Si los PNGs están en 8bpp, las transparencias nunca funcionarán correctamente. De hecho, en 16bpp tampoco.
Deben de estar convertidos a 32bpp.

(bpp = bits por pixel)

Erkosone

Los exporto siempre con Gimp, asi que "supongo" que siempre es a 32 bpp a no ser que diga lo contrario explícitamente.
De todos modos voy a comprobarlo.

Erkosone

Comprobado, están a 32 bpp.

No se que puede ser..



panreyes

Hasta donde puedo ver parece que estés trabajando en 16bpp.
Las áreas con alpha < 128 se interpretan como transparentes, y las que tienen alpha>=128 como opacas (incluyendo la pequeña sombra sobre "Arcade Adventure").

¿Podrías subir el archivo PNG y miro el formato?

Erkosone

Este archivo en bennugd lo visualizo bien pero en PixStudio no.
No entiendo que pasa la verdad.


Pero con casi cualquier archivo me pasa igual, en bennugd se ven bien a 32 bpp y en pixstudio no.
Puede ser una instalación corrupta de pixStudio? ya no se que pensar, volveré a instalarlo.

panreyes

Ni idea de por qué, pero he abierto y guardado de nuevo (sin cambios, sin elegir ninguna opción) el archivo con Adobe Photoshop y después ha funcionado correctamente...

Te lo mando re-guardado.

darío

Importa la imagen a un FPG de 32bbp con un editor FPG y prueba a cargarla desde el FPG o exporta a Map desde el editor FPG. Así sabes si es un problema de load_png o si es la imagen. Si la imagen es transparente, debería ser transparente en el editor FPG.

Más cosas que puedes hacer:

Usa la global GRAPH_MODE (http://dacucar.com/pixtudiodocs/libvideo_symbols/) y compara con MODE_32BITS

My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

darío

Quote from: panreyes on February 03, 2017, 12:04:29 PM
Ni idea de por qué, pero he abierto y guardado de nuevo (sin cambios, sin elegir ninguna opción) el archivo con Adobe Photoshop y después ha funcionado correctamente...

Te lo mando re-guardado.

Podría ser que el 100% transparente pueda ser representado de muchos modos: ARGB(0 ,0, 0, 0)...ARGB(0, 255, 255, 255)

Quizás photosop usa un formato y Gimp otro cuando producen el Png.

Y quizás load_png no funciona bien al respecto.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

Erkosone

Gracias por la información, voy a hacer algunas pruebas para comprobar.
Gracias a todos ;)

DCelso

#10
Si buscas en el foro eso mismo nos pasó hace años con un formato png que no funciona bien en bennugd.

hay formatos que no reconoce bennu bien y no extrae la información de color correctamente.

Asi que lo mejor es que lo pases a 32 bits de color con canal alfa, ten en cuenta que en 32 bits los transparentes que no son negros, es decir, (rgba 0,0,0,0) generan colisión como si no fueran transparentes. y poner set_mode(x,y,32), claro.

Si usas imagenes de 16 bits, tienes que usar el negro rgb 0 0 0 como transparente.

Si usas imagenes de 8 bits (en los programas pone indexadas) da igual el color transparente que uses en el programa, bennu siempre usará como transparente el primer color de la paleta. Es decir si en la paleta tienes primer color rosa, y luego usas como transparente en el programa el verde, entonces en el programa no veras los verdes por ser transparentes y sí los rosas que son el primer color de la paaleta, al abrirlos en bennu, pasará justo lo contrario, no veras los rosas, por ser el primer color de la paleta, y sí veras los verdes, ya que la información de transparencia no será leída por bennu en estos formatos  de imagen indexadas.

Y te ( os ) recuerdo esto porque que el primer color de la paleta coincide con el 0, y el 0, es el 0 absoluto, 0 en todos los modos de bennu es siempre el transparente, 8,16 y 32.  En 8 se refleja en el primer color de la paleta, en 16 en el rgb 0,0,0 y en 32 en el rgba 0,0,0,0 todos son el 0 absoluto.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Erkosone

Gracias por la info DCelso, el caso es que estan a 32 bits con canal alpha y se ven mal, es raro.

DCelso

ponme un ejemplo tonto y te lo pruebo. a ver que encuentro.

una imagen con un proceso usando la imagen por ejemplo en el centro y a correr.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Erkosone

Aqui tienes un ejemplo, es muy muy corto, si descomentas la unica linea que está anulada con // veras como no muestra el gráfico girando.
También veras como la transparencia del grafico que está puesto de fondo es incorrecta.
Gracias por el interes DCelso.


Me gustaria mucho incluir a pixstudio en la lista de los lenguajes con los que trabajo creando HMI´s para la industria, me parece muy util un lenguaje div para crear animaciones y entornos animados 2D industriales donde el usuario puede ver en tiempo real señales provinentes de una instalación.


De hecho empecé con Cdiv en su dia a hacer esto y he pasado por varios lenguajes, pero como ya he podido comprobar durante años bennuGD ha tenido siempre una gran comunidad detras y han aparecido librerias muy interesantes, y una de ellas que ya existe es la libreria de sockets que me parece basica para cualquier cosa.


Así que en realidad lo que quiero es usar PixStudio para hacer programas industriales de SCADA, haber si hay suerte y vemos que problema hay con las transparencias, seguramente será alguna tonteria que no he visto por que me parece raro que a nadie le haya dado problemas y a mi si.


gecko

Me pasa algo muy relacionado, así que pregunto acá, pero en realidad mi duda es con Bennu, así que si quieren abro un nuevo thread.

Estoy en Bennu en 16 bits, y quiero cargar un png con transparencias. Probé con todas las opciones de exportación que encontré al momento de generar el png (32 bits, 32 bits SIN TRANSPARENCIA, 24 bits, 8 bits con transparencia y sin transparencia) y no puedo lograr ver la imagen dentro de BennuGD. Si paso el juego a 32 bits, todas las imágenes cargan perfecto, pero en 16 bits no hay forma de verlas.

Otro dato mas curioso: si cargo la imagen, y la guardo en un fpg desde Bennu en 16 bits, la imagen se guarda correctamente (en 16 bits), pero si cargo ese fpg pasa lo mismo, la imagen no se ve en 16 bits.

Alguien tiene alguna sugerencia?
Ya me quedé sin ideas para probar.
Torres Baldi Studio
http://torresbaldi.com