SDL_LoadBMP

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.

Signatur

#include <SDL.h>
 
SDL_Surface *surface SDL_LoadBMP( const char* file );

Parameter

file

Der Dateipfad der zu ladenden BMP Datei.

Rückgabewert

  • NULL: Im Fehlerfall
  • sonst: Zeiger auf eine gefüllte SDL_Surface Struktur

Beispiel

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.