画像の読み込みと解放
SDL_imageで画像の読み込みと解放をするには、「IMG_Load関数」と「SDL_FreeSurface関数」を使用します。
IMG_Load関数
画像を読み込んで、サーフェスを作成します。
宣言
SDL_Surface* IMG_Load( const char* file );
引数
file | 画像ファイルへのパスです。 |
戻り値
読み込みに成功すると「( 画像の情報から作成した )サーフェスのアドレス」を返し、失敗すると「NULL
」を返します。
SDL_FreeSurface関数
サーフェスを破棄します。
宣言
void SDL_FreeSurface( SDL_Surface* surface );
引数
surface | サーフェスのアドレスです。 |
サンプルプログラム
#include <SDL_image.h>
int main( int argc, char* argv[] )
{
auto format_type_flags = IMG_INIT_JPG | IMG_INIT_PNG | IMG_INIT_TIF;
auto bitmask_of_available_format_type = IMG_Init( format_type_flags );
auto is_completed = ( bitmask_of_available_format_type & format_type_flags ) == format_type_flags;
if ( !is_completed )
{
SDL_Log( u8"SDL_imageの初期化処理に失敗しました。エラーメッセージ: %s", IMG_GetError() );
return -1;
}
auto image = IMG_Load( u8"image.png" );
if ( image == nullptr )
{
SDL_Log( u8"画像の読み込みに失敗しました。エラーメッセージ: %s", IMG_GetError() );
IMG_Quit();
return -1;
}
// 画像を使用した処理
SDL_FreeSurface( image );
IMG_Quit();
return 0;
}