戻る


IMG_Load

画像を読み込む。

使い方

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にてイメージサーフェスの読み込みを行い、ビデオサーフェスに転写、フリップをして、画面に表示させる。

関連項目