ページ 11

画像が読み込めません

Posted: 2011年3月21日(月) 08:19
by rei
LoadGraphで画像を読み込もうとしたのですが、
どうやってもエラーになってしまいます。(-1が返ってくる)

パスとかの間違いなのかなと思っていろいろと試してみたのですが、
どうやってもエラーになってしまいました。

LoadGraphがエラーになる場合としては主にどんなことが挙げられますか?

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 08:31
by ひよこ
どうやってもエラーってファイル名が違う気がします。それ以外は知りません。
サンプルプログラム実行用フォルダでも読み込めないのでしょうか?

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 11:31
by softya(ソフト屋)
違うとしたら、
・LoadGraphのファイル名とパス
・ファイルを置いたパス。
・ファイル名。
のいずれかが間違っています。
確認して分からなければ、ソースコード、試したパス、ファイル名のコピペをしてください。

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 11:38
by Dixq (管理人)
読み込んでいるプログラムと、プロジェクトのファイル構成を教えて頂けませんか?
恐らくファイルパスが間違っているのだと思います。

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 11:44
by rei
サンプルプログラム実行用フォルダにて
int c;
c = LoadGraph("char.png") ;
DrawGraph(0,0,c,TRUE);
としたところ、正常に起動しました。

~.sinがあるフォルダに画像データを置けば、上のように書けるんですよね?(../とかを使わないという意味で)

私の作ったフォルダの場合、Game_main.sinとchar.pngを同じフォルダに入れて、
ついでにload.cppと同じフォルダにもchar.pngを入れて
void load(){
img_ch[0] = LoadGraph("char.png");
if(img_ch[0] =-1)
printfDx("不明\n");
}
としたのですが、「不明」という文字が表れてしまいます。(img_ch[]は別のところで定義しています)
これってLoadGraphそのもののエラーということになりますよね?

ちなみに(関係ないかもしれませんが)main.cppにて
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;
としてみたところ、ちゃんと画像が表示されました。

これを書いている間にほかの方のご回答に気が付いたので、フォルダ構成は次のレスに書き込みます。

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 11:51
by h2so5
本当にLoadGraphの戻り値が -1 か確かめましたか?

if(img_ch[0] =-1)
この条件式は間違っていますよ。

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 11:56
by Dixq (管理人)
h2so5さんの仰るように

コード:

    if( a = -1 ){
        // 処理;
    } 
だと、aに-1を代入した結果を評価するので、常に真になります。
(真とは0以外を指します)
正しくは

コード:

    if( a == -1 ){
        // 処理;
    } 
こうですね。

Re: 画像が読み込めません

Posted: 2011年3月21日(月) 12:09
by rei
h2so5さん、Dixqさんのおっしゃる通り=が一つ抜けてました!
if(img_ch[0] == -1)にしたところ、画像が表示されました。

勝手に-1を代入したことになっていたので、今まで画像が表示されなかったのですね・・・


初歩的なミスですいませんでした・・・
ご回答くださった皆様、本当にありがとうございました!