Load a BMP image from a seekable SDL data stream.
SDL_Surface* SDL_LoadBMP_RW(SDL_RWops *src,int freesrc);
src | the data stream for the surface |
freesrc | non-zero to close the stream after being read |
Returns a pointer to a new SDL_Surface structure or NULL if there was an error; call SDL_GetError() for more information.
The new surface should be freed with SDL_DestroySurface(). Not doing so will result in a memory leak.
src is an open SDL_RWops buffer, typically loaded with SDL_RWFromFile. Alternitavely, you might also use the macro SDL_LoadBMP to load a bitmap from a file, convert it to an SDL_Surface and then close the file.
This function is available since SDL 3.0.0.
const char *image_path = "myimage.bmp";
/* "rb" will "read binary" files */
"rb");
SDL_RWops *file = SDL_RWFromFile(image_path,
/* freesrc is true so the file automatically closes */
SDL_Surface *image = SDL_LoadBMP_RW(file, SDL_TRUE);
/* Let the user know if the file failed to load */
if (!image) {
"Failed to load image at %s: %s\n", image_path, SDL_GetError());
printf(return;
}
/* Do something with image here. */
/* Make sure to eventually release the surface resource */
SDL_DestroySurface(image);