Re: 画像の出力について ( No.1 ) |
- 名前:憂煉 日時:2008/05/15 21:42
はじめましてふるおーとさん。
残念ながら情報が少なすぎて回答が難しいです。
質問する際には以下の事項が含まれていると答える側も楽で、的確な回答が出しやすいので参考にしてくださいね。
@開発環境 BCCなのか、それともVC++なのか。
VC++なら、どのバージョンのVC++なのかという情報もあるといいかもしれません。
A使ってるパソコンの構成。CPUの名前やメモリの量などです。差し支えのない範囲内でどうぞ。
Bコンパイル時のエラーは出ているか、警告はどうだろうか?
開発環境の下のほうにあるウィンドウの内容をコピペするのもアリです。
Cデバッグモードでの実行時に表示される色々な情報でおかしなことはないか?
これもAと同じような所に出ます。もちろんコピペするのもアリです。
特にBとCが重要だったりします。
|
Re: 画像の出力について ( No.2 ) |
- 名前:ふるおーと 日時:2008/05/15 22:58
すみませんでした。
@VC++ 2005です
A1.99GB WindouwsXP Version2002
B1>コンパイルしています...
1>sample.cpp
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\mmreg.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>マニフェストをリソースにコンパイルしています...
1>リンクしています...
1>マニフェストを埋め込んでいます...
警告が一つ出ています
Cログをそのままコピペします。
0:システムの情報を出力します
6: DXライブラリ Ver2.24c
6: OS WindowsXP ( Build 2600 Service Pack 2 )
107: CPU動作速度:大体1.99GHz
108: MMX命令を使用します
108: CPUベンダ:GenuineIntel
110: CPU名:Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz
111:COMの初期化... 成功しました
136:メモリ総量:2038.36MB 空きメモリ領域:1535.55MB
136:タイマーの精度を検査します
137:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
137: パフォーマンスカウンターを使用します タイマー分解能 : 3579.545000 KHz
138: ソフトの二重起動検査... 二重起動はされていませんでした
139:ウインドウクラスを登録します... 登録に成功しました
139:フルスクリーンモード用のウインドウを作成します
158:カーソルを不可視にしました
159:IMEを無効にしました
361:DirectInput関係初期化処理
361: DirectInput7 の取得中... 成功
384: 引き続き初期化処理... 初期化成功
385: ジョイパッドの初期化...
390: 入力装置を見つけました
392: デバイスの登録名:Logitech RumblePad 2 USB
393: デバイスの製品登録名:Logitech RumblePad 2 USB
394: 周期的エフェクトの作成に失敗しました。
396: ジョイパッドの追加は正常に終了しました
396: ジョイパッドの初期化は正常に終了しました
397: マウスデバイスの初期化... 初期化成功
397: キーボードデバイスの初期化... 初期化成功
399:DirectInput 関連の初期化は正常に終了しました
399:DirectSound の初期化を行います
400:DirectSound インターフェースの取得を行います.... 成功
403:引き続きインターフェースの初期化処理... 成功
481: DirectSound デバイスを列挙します
482: モジュール名: ドライバ記述:プライマリ サウンド ドライバ
483: モジュール名: RtkHDAud.sys ドライバ記述:Realtek HD Audio output
483: 最大サンプリングレート:192.00KHz 最小サンプリングレート:8.00KHz
484: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
484: 利用可能サンプリング精度
485: プライマリ 16bit = OK 8bit = OK
486: セカンダリ 16bit = OK 8bit = OK
487: 利用可能チャンネル
488: プライマリ MONO = OK STEREO = OK
488: セカンダリ MONO = OK STEREO = OK
488:DirectSound の初期化は正常に終了しました
489:DirectDraw 関連の初期化を行います
489: DirectDraw オブジェクトの取得を行います.... 成功
496: 引き続き初期化処理... 初期化に成功しました
500: ビデオカードの情報
502: 画面モード変更処理を開始します
563: ウインドウスタイルをフルスクリーンモード用に変更します... 完了
567: 画面モードの変更処理を開始します 640 x 480 16 bit
568: 画面解像度を変更します... 成功しました
873: 画面モードの変更は正常に終了しました
874: カラー情報
877: A:00000000 B:0000f800 G:000007e0 B:0000001f
880: 出力画面用の DirectDrawSurface を作成します
908: 各スクリーンメモリの配置位置
911: PrimaryBuffer : VIDEOMEMORY
915: BaskBuffer : VIDEOMEMORY
917: 出力画面用の DirectDrawSurface の作成は正常に終了しました
919: Direct3D 関連の初期化を行います
920: Direct3Dオブジェクトを取得します
923: Direct3Dオブジェクトを取得しました
924: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました
946: テクスチャ最大幅:4096 最小幅:1
947: 描画制限: D_D3DPTEXTURECAPS_POW2 = 1 D_D3DPTEXTURECAPS_SQUAREONLY = 0
948: テクスチャピクセルフォーマット
948: 通常グラフィック用
949: BIT:16 RED:5 GREEN:6 BLUE:5
949: RED:00f800 GREEN:0007e0 BLUE:00001f
949: BIT:32 RED:8 GREEN:8 BLUE:8
950: RED:ff0000 GREEN:00ff00 BLUE:0000ff
950: アルファチャンネル付きグラフィック用
951: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4
952: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f
953: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8
953: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff
954: Direct3D 関連の初期化は正常に終了しました
955: グラフィック管理系の初期化を行います
958: 3Dグラフィック描画機能を使用します
960: フォントの初期化を行います
962: フォントの初期化は正常に終了しました
963: グラフィック管理系の初期化は正常に終了しました
1025: サーフェス間転送には BltFast を使用します
1026: BitBlt:37244μs BltFast:20980μs
1027: スキャンラインの数:480
1152: 1フレーム当たりの時間は 16 msecです
1154: Tri00:16 msec
1154: Tri01:17 msec
1155: Tri02:16 msec
1156: Tri03:17 msec
1156: 画面モード変更処理は正常に終了しました
1169: オーバーレイサーフェスを使用します UYVY
1169: DirectDraw 関連の初期化は正常に終了しました
1172: 文字コードバッファの初期化を行います... 完了しました
1220: グラフィックファイル test.jpg がありません
9746: DirectDraw 関連の終了処理をおこないます
9747: フォントの初期化を行います
9749: フォントの初期化は正常に終了しました
9750: グラフィック管理系の終了処理は正常に終了しました
9750: Direct3D 関連の終了処理を行います
9753: 3Dデバイスの削除は正常に終了しました
9753: Direct3D 関連の終了処理は正常に終了しました
9753: メインサーフェスを破棄をします... 完了しました
9763: DirectDrawオブジェクトを解放します
10033: DirectDrawオブジェクトを解放しました
10038: DirectDraw 関連の終了処理は正常に終了しました
10041: DirectInput 関連の終了処理... 完了
10050: DirectSound の終了処理は正常に終了しました
10403: ウインドウを閉じようとしています
10406: ウインドウが破棄されようとしています
10409: ソフトを終了する準備が整いました
10767:
10767: Alloc memory dump Total size:0(0.000kb) Alloc num:0
10768:
test.jpgがやっぱり読み込まれていないようです。
|
Re: 画像の出力について ( No.3 ) |
- 名前:憂煉 日時:2008/05/16 00:38
プロジェクトのディレクトリを開いて、直接実行してみてください。それで正常に表示されるようならパスの問題です。
VC++だと開発環境側からのプログラムの呼び出しの時にソースコードのあるフォルダがデフォルトのディレクトリになります。
よってプログラミング中はソースコードと画像などのデータをごちゃ混ぜにする羽目になります。
|
Re: 画像の出力について ( No.4 ) |
- 名前:ふるおーと 日時:2008/05/18 03:14
Debugフォルダにあるexeファイル(らしきもの)を実行してみました。やはり黒い画面です。
私はまだプログラムに関する知識は基礎的なこと以外ほとんどないのでこれで良いのかわかりません。もし上記のものでないなら教えてください。
|
Re: 画像の出力について ( No.5 ) |
- 名前:管理人 日時:2008/05/18 12:43
ファイルはどのフォルダにコピペしたのでしょうか?
Debug フォルダにある exe ファイルを直接実行する場合は、そのフォルダに
画像ファイルがある必要があります。
そうではなくて Visual C++ 2005 Express Edition 上から実行する場合は
プロジェクトファイル( 拡張子が sln のファイル ) があるフォルダに
画像ファイルがある必要があります。
|
Re: 画像の出力について ( No.6 ) |
- 名前:ふるおーと 日時:2008/05/18 20:04
今見てみたのですが、一応slnファイルのある場所と同じところに画像を置いてます。
ためしにあらゆるところにjpgファイルを置いてみましたが、出ません。
|
Re: 画像の出力について ( No.7 ) |
- 名前:通 日時:2008/05/19 11:28
>あらゆるところにjpgファイルを置いてみましたが、出ません。
どこの画像を読み込むようにしていて、
どこにその画像を置いたのか。
あらゆるところとは具体的にどこですか?
また、使用したサンプルとはどのコードですか?
#こちらは念のため。
|
Re: 画像の出力について ( No.8 ) |
- 名前:ふるおーと 日時:2008/05/19 22:53
とりあえず他スレで見た、C:\の場所に置いてみました。読み込みは、C:\test.jpg と指定しています。
使用したのはゲームプログラム講座、基礎編1の最初のサンプルです。
|
Re: 画像の出力について ( No.9 ) |
- 名前:かたぱると 日時:2008/05/20 11:05
場所を指定する場合ですと
エスケープシーケンスの問題ですかね。
C:\test.jpgを指定するのに、
プログラム上の文字列ですと
"C:\\test.jpg"
と\を二回続けて指定してあげないと文字列の\と認識してくれません。
C:\test.jpg を用意して以下のサンプルを実行してもダメでしょうか。
<以下をコピー>
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// JPG画像の表示
LoadGraphScreen( 0 , 0 , "c:\\test.jpg" , TRUE ) ;
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
|
Re: 画像の出力について ( No.10 ) |
- 名前:ふるおーと 日時:2008/05/20 22:20
出ないですね…。
これはコード云々の問題ではなく単純に置いている場所や指定した画像そのものの問題でしょうか?
|
Re: 画像の出力について ( No.11 ) |
- 名前:通 日時:2008/05/21 18:33
>描画制限:
> D_D3DPTEXTURECAPS_POW2 = 1
> D_D3DPTEXTURECAPS_SQUAREONLY = 0
ご利用の環境はテクスチャに2の累乗制限がついているようですが、test.jpgのサイズはどうなっていますか?
画像の縦横のサイズが2の累乗になっているかを
確認してみてください。
LoadGraphScreen関数は指定されたファイルから
おそらく自動でサイズを取得してテクスチャを
作成すると思いますので、テクスチャの作成に
失敗している可能性があります。
LoadGraphScreen関数の戻り値をまずは調べてみては
どうでしょうか?
|
Re: 画像の出力について ( No.12 ) |
- 名前:ふるおーと 日時:2008/05/21 23:06
えーとすみません。具体的な確認の仕方を教えてください。勉強を初めて本当に日が浅いんです。本当にすみません。
|
Re: 画像の出力について ( No.13 ) |
- 名前:Will 日時:2008/05/22 09:52
サイズの確認
エクスプローラでtest.jpgにマウスカーソルを合わせると以下のようなポップアップが表示されます。
大きさ:YYY x ZZZ ←ここ
種類:JPEGイメージ
サイズ:...
戻り値チェック
if (LoadGraphScreen(0, 0, "c:\\test.jpg", FALSE) == -1) {
printfDx("画像ファイル出力失敗");
}
※そんなことはないと思うけど透過されて表示されていないと思っていた、という落ちはいやなので変えました
|
Re: 画像の出力について ( No.14 ) |
- 名前:通 日時:2008/05/22 10:12
>>Willさん
フォローありがとうございます。
>>ふるおーと
>具体的な確認の仕方を教えてください。
>勉強を初めて本当に日が浅いんです。
画像のサイズ確認は分かりますよね?
Willさんが紹介されている方法か、
右クリックメニューのプロパティから
調べる方法などいくつか存在します。
#これはプログラムとは無関係
戻り値の確認ですが、
戻り値とは何かは分かりますよね。。。?
まだ初めて間もないということなので、
もしも、分からないならDXライブラリの前に、
C言語の書籍かWEBサイトなどでC言語を先に
勉強されたほうが良いように思います。
初心者にも分かりやすく解説されているサイトは
いくつかありますので。
ttp://www9.plala.or.jp/sgwr-t/
#頭にhをつけてください。
|
Re: 画像の出力について ( No.15 ) |
- 名前:ふるおーと 日時:2008/05/22 23:05
わかりました。いままでご指導ご鞭撻ありがとうございました。もう少し勉強を重ねてから挑もうと思います。
本当にありがとうございました。
|