Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: javiel en 17 de Mayo de 2004, 07:53:03 PM

Título: Alpha En Png Con Sdl
Publicado por: javiel en 17 de Mayo de 2004, 07:53:03 PM
 Holas a todos

Vamos a ver, estoy intentando utilizar la funcion

SDL_SetAlpha (image, SDL_SRCALPHA, 0);

Cuando cargo "image" con un BMP utilizando la funcion SDL_LoadBMP, la tranparencia me la hace perfecta, pero cuando cargo un PNG con la funcion IMG_Load, de la libreria SDL_Image, no me funciona, me la deja normal, como si no lo hubiese hecho nada. He estado buscando por google, y creo que es un problema común, pero no logro encontrar la solución y no se como hacerlo. No se si es al guardar el archivo PNG o que le tengo que hacer algo desde código

¿me podéis ayudar?
Título: Alpha En Png Con Sdl
Publicado por: Lucas333 en 17 de Mayo de 2004, 09:13:03 PM
 no te lo puedo asegurar al 100% pq soy nuevo tb con sdl pero creo q hay una libreria para png..... supongo pq la tratara diferente cuando hace las transparencias pero no tengo ni idea pq solo la vi por encima
Título: Alpha En Png Con Sdl
Publicado por: Sherpa en 18 de Mayo de 2004, 09:26:49 AM
 Prueba a aplicar la función SDL_DisplayFormatAlpha() en lugar de SDL_DisplayFormat() a la surface.
Título: Alpha En Png Con Sdl
Publicado por: shephiroth en 18 de Mayo de 2004, 06:26:41 PM
 Buenas. Se que parece lo mas estúpido del mundo, pero prueba una cosilla. Primero una copia de seguridad de la imagen por si las moscas. Lo segundo en la imagen, en vez de dejarlo transparente pinta con #FFFF00 lo transparente, y sin cambiar nada de codigo ejecuta.

A hora bien, se que no va a funcionar, asi que ya me callo y dejo q contesten los q saben (nooo)  (nooo)  
Título: Alpha En Png Con Sdl
Publicado por: javiel en 18 de Mayo de 2004, 08:49:18 PM
 He puesto la funcion

img = SDL_DisplayFormat(img);

y ya me hace la opacidad, antes no lo tenía puesta, pero el problema es que la parte transparente que tiene el PNG ahora me la convierte a negro y ademas los bordes de los sprites se ven bastante feos (no se como explicarlo mejor). No se exactamente que hace esta función pero al colocar la imagen con el blit se la carga

¿sabéis algo al respecto?
Título: Alpha En Png Con Sdl
Publicado por: AlexHdez en 18 de Mayo de 2004, 09:54:07 PM
 
CitarSDL_SetAlpha (image, SDL_SRCALPHA, 0);

El tercer parametro va de 0 a 255 segun la intesidad que quieras aplicar al alfa, si pones cero digo yo que no se aplicara nada... igual he dicho una tonteria, :S

Ah y si lo que quieres es que se transparente solo un color no es alpha la funcion sino SDL_SetColorKey. Ahi le dices el color transparente.

Un saludo
Título: Alpha En Png Con Sdl
Publicado por: javiel en 19 de Mayo de 2004, 09:11:00 AM
 El 0 lo puse por poner algo, ni me di cuenta, no le heches cuenta.

Yo no quiero hacer transparente un pixel, lo quiero hacer es una opacidad a la imagen con PNG

gracias