It definitely looks like your channels are inverted. It's hard to see from here if your alpha is working properly, but some textures are ARGB
, maybe you should try that!
Actually, just to validate your data, you should check your
SDL_Surface *image
And see what's image->format->Rmask
Gmask
Bmask
and Amask
, this way you can be sure what format your surface has.