画像読み込みについてなのですが,通常私は画像をメモリに一度読み込んで使用しています.その場合,メモリに読み込む画像が多すぎると,読み込まれない画像が出てくることは無いでしょうか?
現在起こっている問題は,宣言した配列に画像をそれぞれ入れていき,表示するという動作時に発生します.
int img_gazou[10];
img_gazou[0] = LoadGraph("aaa/aaa.png");
img_gazou[1] = LoadGraph("aaa/bbb.png");
img_gazou[2] = LoadGraph("aaa/ccc.png");
img_gazou[3] = LoadGraph("aaa/ddd.png");
img_gazou[4] = LoadGraph("aaa/eee.png");
この方法で同じようにメモリに画像をたくさん取り込んでいった後,img_gazou[n]を呼び出します.するとnの値が0の時は描画されるのに,1の時は描画されないという問題が発生しました.同じ方法で読み込んだにもかかわらず,その配列に読み込まれている画像が描画されないというのはなぜなのでしょうか?こちらではなぜ描画されないのか分かりません.
ご返答よろしくお願いいたします.
画像読み込みについて
Re:画像読み込みについて
表示されないときのimg_gazou[n]に入っている値を確認してください。
-1になっていたらLoadGraphの時点で画像の読み込みに失敗しています。
画像のファイル名やパスが間違っていないかを確認してください。
-1になっていたらLoadGraphの時点で画像の読み込みに失敗しています。
画像のファイル名やパスが間違っていないかを確認してください。
Re:画像読み込みについて
img_gazou[n]などのように,配列ではなくgazouのように,ただの変数であっても同じ現象が起こるので,nの値は関係ないかもしれません.
パスは確実に合っています.なぜなら,読み込める変数と読み込めない変数で同じパスを入力した場合,読み込める変数ではしっかり読めこめるからです.
gazou = LoadGraph("image/aa.png");
gazou1= LoadGraph("image/aa.png");
DrawGraph(0,0 ,gazou,FALSE);//表示できる
DrawGraph(0,100,gazou1,FALSE);//表示できない
パスは確実に合っています.なぜなら,読み込める変数と読み込めない変数で同じパスを入力した場合,読み込める変数ではしっかり読めこめるからです.
gazou = LoadGraph("image/aa.png");
gazou1= LoadGraph("image/aa.png");
DrawGraph(0,0 ,gazou,FALSE);//表示できる
DrawGraph(0,100,gazou1,FALSE);//表示できない
Re:画像読み込みについて
現象を再現できる最小限のソースを提示することは出来ますか?
現状では、何らかのバグによってエリア破壊が発生しているのでは?というような憶測の回答しか出来ません。
現状では、何らかのバグによってエリア破壊が発生しているのでは?というような憶測の回答しか出来ません。
Re:画像読み込みについて
沢山画像を読み込んだら、前のが無効になることはありません。
img_gazou[0] = LoadGraph("aaa/aaa.png");
img_gazou[1] = LoadGraph("aaa/bbb.png");
img_gazou[2] = LoadGraph("aaa/ccc.png");
img_gazou[3] = LoadGraph("aaa/ddd.png");
img_gazou[4] = LoadGraph("aaa/eee.png");
この後、
for(i=0;i<4;i++){
printfDx("%d\n",img_gazou);
}
を書いて、中身を表示させてみて下さい。全て-1以外が表示されますか?
もしこれで正常なら、他の配列がオーバーフローなどを起こして要素の値が書き換わってるのかもしれません。
または、この配列自身、用意する要素数が足りていないとか。
どうしてもわからなければ、こちらがコンパイル出来る形にしてソースを投稿してもらえると解決し易いかと思います。
プロジェクトごと圧縮してもらえると助かります。
img_gazou[0] = LoadGraph("aaa/aaa.png");
img_gazou[1] = LoadGraph("aaa/bbb.png");
img_gazou[2] = LoadGraph("aaa/ccc.png");
img_gazou[3] = LoadGraph("aaa/ddd.png");
img_gazou[4] = LoadGraph("aaa/eee.png");
この後、
for(i=0;i<4;i++){
printfDx("%d\n",img_gazou);
}
を書いて、中身を表示させてみて下さい。全て-1以外が表示されますか?
もしこれで正常なら、他の配列がオーバーフローなどを起こして要素の値が書き換わってるのかもしれません。
または、この配列自身、用意する要素数が足りていないとか。
どうしてもわからなければ、こちらがコンパイル出来る形にしてソースを投稿してもらえると解決し易いかと思います。
プロジェクトごと圧縮してもらえると助かります。