トップページに戻る / GCCページに戻る / SDL目次


5 ビットマップ以外の画像表示

ビットマップファイルが重すぎるので、別の形式の画像ファイルを使いたい、とか、透過pngを使いたいというときのために、SDL_imageライブラリがあります。

#include <SDL/SDL.h>
#include <SDL/SDL_image.h>

int main(int argc, char* argv[]){
	SDL_Surface* image;
	SDL_Rect rect, scr_rect;

	SDL_Init(SDL_INIT_EVERYTHING);

	SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);

	/* 画像読み込み */
	image = IMG_Load("sample.png");

	/* 画像の矩形情報設定 */
	rect.x = 0;
	rect.y = 0;
	rect.w = image->w;
	rect.h = image->h;

	/* 画像配置位置情報の設定 */
	scr_rect.x = 0;
	scr_rect.y = 0;

	/* サーフェスの複写 */
	SDL_BlitSurface(image, &rect, SDL_GetVideoSurface(), &scr_rect);

	/* サーフェスフリップ */
	SDL_Flip(SDL_GetVideoSurface());

	SDL_Delay(3000);

	SDL_FreeSurface(image);

	SDL_Quit();

	return 0;
}

SDL_image.hをインクルードする必要があり、また、コンパイル時にSDL_imageへリンクしなければなりません。以下、コンパイルコマンド例

$ gcc test.c -lSDL -lSDL_image

IMG_Load()

SDL_Surface *IMG_Load(const char *file);

SDL_imageの関数で、様々な形式の画像ファイルを読み込みます。対応形式は、BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX, GIF, JPEG, PNG, TGA, TIFFです。

fileは画像ファイル名になります。


/

indexに戻る