Hola.
Tengo una duda sobre map_xput y su constante b_colorkey.
En el código que os paso adjunto, cargo una imagen de 32 bits con transparencia (que la llamo "contrans.png"), genero en memoria una imagen igual pero sin transparencia (con map_xput y el flag b_colorkey) y la grabo en disco llamándola "sintrans.png". Yo tenía entendido que si le quitas la transparencia, deberían salir a la vista todos los píxeles (anteriormente invisibles) pintados de negro.
Pero no, la imagen final continúa teniendo las mismas zonas transparentes -al menos, visualmente- que la original. ¿Es el comportamiento correcto y soy yo el que anda errado? ¿O hay algún detalle que se me escapa?
Gracias!
P.D: Por otro lado, otra duda rápida que no tiene nada que ver: ahora en 32 bits, ya que gozamos de transparencia, no sería necesario utilizar para nada drawing_alpha en el dibujado de primitivas transparentes, ¿verdad?. Con drawing_color y rgba ya bastaría, no? Venga, gracias otra vez.
el b_colorkey significa que el grafico se copia sobre otro tal cual es, sin hacer transparencias con respecto al fondo... esto es... si en grafico destino tenemos un pixel de "color A" y en el grafico source tenemos un pixel (para esa misma posicion) "color transparente/semi-transparente", al hacer el put, en esa posicion vamos tener el mismo pixel de "color transparente/semi-transparente".
resumiendo:
normal (con transparencia)
destino = destino + source
normal (sin transparencia)
destino = source
b_colorkey (con o sin transparecia)
destino = source
con respecto al drawing_alpha, no... porque el drawing_alpha no invalida el alpha del pixel, sino que actua sobre este (incrementa el alpha del pixel)
Muchísimas gracias!