SDL_LoadBMP lädt das angegebene BMP Bild in eine SDL_Surface Struktur. Im Fehlerfall bekommt man NULL zurück, ansonsten kann man die Oberfläche zum Beispiel mit SDL_BlitSurface in auf den Bildschirm kopieren. Nach der Verwendung muss die Oberfläche mit SDL_FreeSurface wieder freigegeben werden, da beim Laden dynamischer Speicher angefordert wird.
#include <SDL.h> SDL_Surface *surface SDL_LoadBMP( const char* file );
Der Dateipfad der zu ladenden BMP Datei.
Als Bild kann folgende Grafik verwendet werden:
proggenlogo.zip
Sie muss im gleichen Verzeichnis wie das Programm liegen.
#include <iostream> #include <cstdlib> #include <SDL/SDL.h> int main( int argc, char **argv ) { if( SDL_Init( SDL_INIT_VIDEO ) ) // Video-Subsystem initialisieren und auf Fehler prüfen { std::cerr << "Konnte SDL nicht initialisieren: " << SDL_GetError() << std::endl; return 1; } atexit (&SDL_Quit); // SDL am Ende des Programms runterfahren // ein 312*61 Fenster erstellen SDL_Surface *screen = SDL_SetVideoMode (312, 61, 16, SDL_DOUBLEBUF); if( !screen ) // prüfen ob das Fenster korrekt erstellt wurde { std::cerr << "Konnte Fenster nicht erstellen: " << SDL_GetError () << std::endl; return 1; } SDL_Surface *image = SDL_LoadBMP ("proggenlogo.bmp"); // Bild laden if( !image ) { std::cerr << "Bild konnte nicht geöffnet werden: " << SDL_GetError () << std::endl; return 1; } SDL_BlitSurface( image, NULL, screen, NULL); // das Bild auf das Fenster blitten SDL_FreeSurface( image ); // Speicher des Bildes freigeben SDL_Flip( screen ); // Puffer tauschen SDL_Delay (5000); // dem Benutzer Zeit geben das Bild anzusehen return 0; }
Nun sollte ein Fenster mit Bild angezeigt werden.