ページ 11

LoadGraph関数で画像を読み込むときにエラーが発生する

Posted: 2022年10月16日(日) 21:27
by burotenn
C言語を始めたばかりの初心者です。
ゲーム制作はどのようにしてするのか気になり「ゲームプログラミングの館」のソースコードを変えて応用していたのですが、以下のソースコードを実行しても画像が表示されませんでした。

コード:

 
 
 #include "DxLib.h"

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
    ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定

    int Handle00, Handle01;     // 画像格納用ハンドル
    Handle00 = LoadGraph("画像/tutorial.png"); // 画像のロード
    Handle01 = LoadGraph("画像/settings.png"); // 画像のロード

    // while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
    while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {

        DrawGraph(0, 0, Handle00, TRUE); //画像の描画
        DrawGraph(520, 0, Handle01, TRUE); //画像の描画

    }

    DxLib_End(); // DXライブラリ終了処理
    return 0;
}
 
 
他にもこのような質問をしている方がいたので、閲覧していると log.txt でエラーを吐いていて 

"1007:Movie File Open Error : 画像/tutorial.png
1007:ムービーファイルオープン処理時にエラーが発生しました
Image File Load Error : 画像/tutorial.png

1045:Movie File Open Error : 画像/settings.png
1045:ムービーファイルオープン処理時にエラーが発生しました
Image File Load Error : 画像/settings.png "

と書かれていました。
画像のプロパティを見てみたのですが、ちゃんとpngファイルでなぜムービーファイルと判定されているのかわかりません。
調べたりもしたのですが対処法が判らず、足止めを食らっています。
どのようにすれば、pngファイルを読み込むことができるのでしょうか。

Re: LoadGraph関数で画像を読み込むときにエラーが発生する

Posted: 2022年10月16日(日) 22:26
by みけCAT
burotenn さんが書きました:
2年前
log.txt でエラーを吐いていて 

"1007:Movie File Open Error : 画像/tutorial.png
1007:ムービーファイルオープン処理時にエラーが発生しました
Image File Load Error : 画像/tutorial.png

1045:Movie File Open Error : 画像/settings.png
1045:ムービーファイルオープン処理時にエラーが発生しました
Image File Load Error : 画像/settings.png "

と書かれていました。
DXライブラリ Ver3.24 で試した所、空 (0バイト) の tutorial.png および settings.png で再現できました。
また、該当のファイルを置かなかった場合は別のメッセージが出ました。
burotenn さんが書きました:
2年前
画像のプロパティを見てみたのですが、ちゃんとpngファイルでなぜムービーファイルと判定されているのかわかりません。
画像のプロパティで表示されるファイルの種類は、中身を見ずに拡張子だけで判定している可能性があります。
ファイルの中身をチェックし、正しい形式か確認しましょう。
例えば、正しいPNGファイルであれば最初の8バイトは 89 50 4E 47 0D 0A 1A 0A (16進数) となるはずです。

Re: LoadGraph関数で画像を読み込むときにエラーが発生する

Posted: 2022年10月16日(日) 22:49
by burotenn
バイナリエディタを用いて見てみたところ
"FF D8 FF E0 00 10 4A 46"
とファイルがjepgであることが分かりました。
ご回答ありがとうございました。