Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Alpha En Png Con Sdl

Iniciado por javiel, 17 de Mayo de 2004, 07:53:03 PM

« anterior - próximo »

javiel

 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?
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

Lucas333

 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

Sherpa

 Prueba a aplicar la función SDL_DisplayFormatAlpha() en lugar de SDL_DisplayFormat() a la surface.

shephiroth

 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)  

javiel

 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?
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

AlexHdez

 
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

javiel

 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
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.