归结为这段代码:
SDL_Surface *smiley = SDL_LoadBMP("./images/smileys/normal_up.bmp");
printf("Transparation worked: %i\n", SDL_SetColorKey(smiley, SDL_SRCCOLORKEY, SDL_MapRGB(smiley->format, 255, 0, 255)));
SDL_BlitSurface(smiley, NULL, window, NULL);
SDL_Flip(window);
这是我使用的image。 在Arch Linux上使用SDL。
答案 0 :(得分:0)
在SDL_SetColorKey()调用之前的这些行使整个过程发挥作用:
smiley->format->Amask = 0xFF000000;
smiley->format->Ashift = 24;
现在我可以使用32或24 bpp VideoMode的.bmp或.jpg文件,一切正常! 不知道为什么,不知道它是如何工作的。