• 13
• 18
• 19
• 27
• 9

Getting a PNG image from a resource file

This topic is 2178 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Hello. I got this one problem I need to solve, and it's putting and getting a PNG image from a resource file.
I followed these two tutorials: http://content.gpwik..._Resource_Files and http://content.gpwik...sing_SDL_RWops.
Bitmaps work, but I can't get PNGs on the screen.

This is the code I thought would work for loading an image from a resource file:

SDL_Surface* CSurface::load_image(char *resource, char *File ) { int filesize = 0; char *buffer = GetBufferFromResource(resource, File, &filesize); SDL_RWops *rw = SDL_RWFromMem(buffer, filesize); SDL_Surface *loadedImage = IMG_LoadPNG_RW(rw); //The optimized image that will be used SDL_Surface* optimizedImage = NULL; free(buffer); //If the image loaded if( loadedImage != NULL ) { //Create an optimized image optimizedImage = SDL_DisplayFormat( loadedImage ); //Free the old image SDL_FreeSurface( loadedImage ); } //Return the optimized image return optimizedImage; }

... but it doesn't work.

I didn't touch the code from the tutorial where it creates a resource file, so that might be the problem.

Share on other sites
Are you using SDL_image? SDL can load BMP files but not PNG files. You need to use SDL_image to be able to load PNG files.

If you are using SDL_image on Windows, the Windows version comes with DLLs for different image formats. The DLL for PNG files needs to be in the same location as the SDL and SDL_image DLLs or you won't be able to load PNG files.

Share on other sites
Yes, I am using SDL_image. You can even see me using the command IMG_LoadPNG_RW().
I have all the necessary DLLs files in the folder where my game is.
I can blit PNGs when loading them normally, but it doesn't work when trying to load them from the resource file.