画像を読み込む。
SDL_Surface *IMG_Load(const char *file);
fileにはファイル名を指定する。指定できる画像フォーマットは、BMP、PNM(PPM/PGM/PBM)、XPM、 LBM、PCX、GIF、JPEG、PNG、TGA、TIFF。
SDL_imageの関数であるため、インクルードとライブラリへのリンクが必要。
SDL本体にもSDL_LoadBMP()があるが、こちらは名前のとおりBMPファイルしか扱えない。
返り値はイメージサーフェス。エラーの場合はNULLが返る。
↓サンプルで使用している画像
#include <SDL/SDL.h> #include <SDL/SDL_image.h> int main(){ /* ビデオサーフェス */ SDL_Surface* videoSurface = NULL; /* イメージサーフェス */ SDL_Surface* imageSurface = NULL; /* 初期化処理 */ SDL_Init(SDL_INIT_EVERYTHING); /* ウインドウオープン */ SDL_SetVideoMode(640, 480, 0, SDL_HWSURFACE | SDL_DOUBLEBUF); /* ビデオサーフェスの取得 */ videoSurface = SDL_GetVideoSurface(); /* 画像の読み込み */ imageSurface = IMG_Load("penguin_mgc_pic.jpg"); /* 画像をビデオサーフェスに転写 */ SDL_BlitSurface(imageSurface, &(imageSurface->clip_rect), videoSurface, &(videoSurface->clip_rect)); /* イメージサーフェスの削除 */ SDL_FreeSurface(imageSurface); /* フリップ */ SDL_Flip(videoSurface); /* 3秒ウエイト */ SDL_Delay(3000); /* 終了処理 */ SDL_Quit(); return 0; }
画像を読み込んで、ウインドウに表示するまでの流れの例。
IMG_Loadにてイメージサーフェスの読み込みを行い、ビデオサーフェスに転写、フリップをして、画面に表示させる。