Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SantillanOrtega en 22 Marzo 2013, 07:31 am



Título: Hacer transparente una imagen con allegro
Publicado por: SantillanOrtega en 22 Marzo 2013, 07:31 am
Hola que tal estoy haciendo un juego en dev c++ utilizando allegro y lo que quiero es poner una imagen la cual es un "persona" pero quiero eliminar el fondo (Fucsia) osea hacerla transparente estoy utilizando blit y mask_blit este es mi código  pero no me sale :
blit(level1,screen,0,0,0,0,600,600);
         masked_blit(mono,screen,0,pm,x,y,32,32);
         blit(level1,screen,0,0,0,0,256,0);

Agradecería si alguien me pudiera ayudar


Título: Re: Hacer transparente una imagen con allegro
Publicado por: amchacon en 22 Marzo 2013, 12:32 pm
Se me ocurren dos formas:

- Cambiarle el fondo a negro y tirando para adelante  ;-)
- Una mini función (chapuza):

Código
  1. void ImprimirSprite(BITMAP* sprite,int x,int y,int TAMX,int TAMY)
  2. {
  3.   int i,j;
  4.  
  5.    for (j = 0; j < TAMX;j++)
  6.       for (i = 0; i< TAMY;i++)
  7.         if (color del pixel[i][j] != FUCSIA)
  8.            putpixel(screen,x+j,y+i,color del pixel[i][j]);
  9. }

Poniendo en "color del pixel" la función que te devuelva el color de un bitmap en una determinada coordenada (no me acuerdo cual era).


Título: Re: Hacer transparente una imagen con allegro
Publicado por: ukol en 22 Marzo 2013, 12:45 pm
Usas Allegro 5?
Has intentado usar al_convert_mask_to_alpha?