Test Foro de elhacker.net SMF 2.1

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):

void ImprimirSprite(BITMAP* sprite,int x,int y,int TAMX,int TAMY)
{
   int i,j;
   
    for (j = 0; j < TAMX;j++)
       for (i = 0; i< TAMY;i++)
         if (color del pixel[i][j] != FUCSIA)
            putpixel(screen,x+j,y+i,color del pixel[i][j]);
}


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?