Load a BMP image from a seekable SDL data stream.
SDL_Surface* SDL_LoadBMP_RW(SDL_RWops *src, SDL_bool freesrc);
src | the data stream for the surface |
freesrc | if SDL_TRUE, calls SDL_RWclose() on src before returning, even in the case of an error |
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.
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);