2017-10-29 7 views
0

私はSDL2_image.hでさまざまなフォーマットをロードしてSDLプログラムで画像を読み込む方法を尋ねました。現在発生している問題は、 ".bmp"とは異なる形式のファイルを読み込もうとするときです。例えばC++ SDL2 Image .bmpと異なるフォーマットをロードしています

- このコードは正常に動作は、

Img = IMG_LoadTexture(renderer, "./image.bmp"); 
SDL_QueryTexture(Img, NULL, NULL, &w, &h); 
rectImg.x = 0; rectImg.y = 0; rectImg.w = w/2; rectImg.h = h/2; 

if (Img == NULL) { 
    std::cout << "failed to load image"; 
} 

このプリントは、コンソールの「イメージのロードに失敗しました」。

Img = IMG_LoadTexture(renderer, "./image.jpg"); 
SDL_QueryTexture(Img, NULL, NULL, &w, &h); 
rectImg.x = 0; rectImg.y = 0; rectImg.w = w/2; rectImg.h = h/2; 

if (Img == NULL) { 
    std::cout << "failed to load image"; 
} 

イメージは同じフォルダにありますが、2番目のケースではエラーが発生します。 SDL2イメージは、そのような種類のファイルをロードできないのですか、何が間違っていますか?

答えて

1

あなたが圧縮されたフォーマットを処理するために必要な初期化コードが欠落しているように思え:

IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG); 
+0

私は、これはそれが指定されたモジュールを見つけることができない使用しようとすると、これは私がダウンロードする必要がありSDL2_Image外に何かありますか? – darclander

+0

@darclander SDL2_imageバイナリディストリビューションには、libjpeg、libpng、...ダイナミックライブラリが付属しており、 'IMG_Init'でリクエストされたときにのみロードします。必要なライブラリをライブラリの検索パスに入れる必要があります。 – keltar

+0

Libjpegとlibpngはすでに指定された検索パスにありますが、私が提供したコードでプログラムを実行するとエラー処理イベントが表示されますが、 "libjpeg-9.dll"というエラーメッセージは表示されませんが、上記のように... – darclander

関連する問題