画像が読み込めません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
rei

画像が読み込めません

#1

投稿記事 by rei » 14年前

LoadGraphで画像を読み込もうとしたのですが、
どうやってもエラーになってしまいます。(-1が返ってくる)

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

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

アバター
ひよこ
記事: 25
登録日時: 15年前

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

#2

投稿記事 by ひよこ » 14年前

どうやってもエラーってファイル名が違う気がします。それ以外は知りません。
サンプルプログラム実行用フォルダでも読み込めないのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 14年前

違うとしたら、
・LoadGraphのファイル名とパス
・ファイルを置いたパス。
・ファイル名。
のいずれかが間違っています。
確認して分からなければ、ソースコード、試したパス、ファイル名のコピペをしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

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

#4

投稿記事 by Dixq (管理人) » 14年前

読み込んでいるプログラムと、プロジェクトのファイル構成を教えて頂けませんか?
恐らくファイルパスが間違っているのだと思います。

rei

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

#5

投稿記事 by rei » 14年前

サンプルプログラム実行用フォルダにて
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 ) ;
としてみたところ、ちゃんと画像が表示されました。

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

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

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

#6

投稿記事 by h2so5 » 14年前

本当にLoadGraphの戻り値が -1 か確かめましたか?

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

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

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

#7

投稿記事 by Dixq (管理人) » 14年前

h2so5さんの仰るように

コード:

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

コード:

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

rei

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

#8

投稿記事 by rei » 14年前

h2so5さん、Dixqさんのおっしゃる通り=が一つ抜けてました!
if(img_ch[0] == -1)にしたところ、画像が表示されました。

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


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

閉鎖

“C言語何でも質問掲示板” へ戻る