diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c index 797863550..670821175 100644 --- a/src/video/SDL_bmp.c +++ b/src/video/SDL_bmp.c @@ -246,6 +246,16 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) Gmask = SDL_ReadLE32(src); Bmask = SDL_ReadLE32(src); Amask = SDL_ReadLE32(src); + + /* ImageMagick seems to put out bogus masks here. Pick a default. */ + if ((Rmask == 0xFFFFFF) && (Gmask == 0xFFFFFF) && + (Bmask == 0xFFFFFF) && (Amask == 0xFFFFFF) ) { + Amask = 0xFF000000; + Rmask = 0x00FF0000; + Gmask = 0x0000FF00; + Bmask = 0x000000FF; + } + break; default: break;