画像のサイズ取得

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

画像のサイズ取得

#1

投稿記事 by Libra » 15年前

現在DirectXでプログラムを組んでいます。
画像を読み込んで、ポリゴンにテクスチャを貼って表示させるとき、
表示サイズが必要となるのですが、
今までは、画像を読み込むときに、画像のサイズも一緒に引数として渡していたのですが、
画像を読み込むときに、画像サイズも一緒に読み込むようにしようと考えました。

目的は、読み込んだ画像をそのままのサイズで表示させるためです。
そのため、画像の縦横のサイズを取得したいのですが、
DirectXで画像の縦横のサイズを取得する処理は用意されているのでしょうか?

言語:C++、C(C++はまだ始めたばかりなので、Cが混ざってます)
開発環境VisualStudio2008
DirectX9
参考にしているサイト:ttp://marupeke296.com/GameMain.html その3の部分です

一応、画像サイズを読み込む処理は自分で書いてみたのですが、
もし、DirectXで処理が用意されているのであれば、そっちを使いたいです。

Justy

Re:画像のサイズ取得

#2

投稿記事 by Justy » 15年前


> DirectXで画像の縦横のサイズを取得する処理は用意されているのでしょうか?

 ファイル読み込み前なら

D3DXGetImageInfoFromFile 関数
http://msdn.microsoft.com/ja-jp/library/cc372763.aspx


 読み込んだ後なら、

GetLevelDesc メソッド (IDirect3DTexture9)
http://msdn.microsoft.com/ja-jp/library/cc324020.aspx

D3DSURFACE_DESC 構造体 ()
http://msdn.microsoft.com/ja-jp/library/cc323938.aspx

ってところでしょうか。

Libra

Re:画像のサイズ取得

#3

投稿記事 by Libra » 15年前

回答ありがとうございます m(_ _)m。
MSDNのリファレンスを探す際、Get~Size的な関数があるのかと思っていました。
サイズに関しては、解決しました。

スレッドタイトルと内容が変わってしまうのですが、
デバックを手伝っていただけないでしょうか。申し訳ないのですが・・・。



DirectXで画像を表示するプログラムです。
Dxlibを参考に、作成しているのですが、
DrawPrimitiveメソッドを呼び出した際に、エラーが出てしまいました。


Windowを作成するクラス、DirectInputを制御するクラス、
画像を制御するクラスを作成し、
それらのインスタンスをまとめたクラスを作成。
Mainでそのクラスのインスタンスを生成することで、
DirectXを制御する、という流れになっています。

エラーが出ているのは、GraphicManagerクラスです。
参考にしたのは、ttp://marupeke296.com/DXGSmp_No3_CreateTexture.htmlです。

描画の流れは、

頂点バッファの作成→テクスチャの作成→頂点位置を決定→
ロックをかける→SetStreamSource、SetFVF、DrawPrimitiveメソッドを呼び出す

とやっているのですが、DrawPrimitiveを呼び出したときに例外が出てしまいます。

Justy

Re:画像のサイズ取得

#4

投稿記事 by Justy » 15年前


> DrawPrimitiveを呼び出したときに例外が出てしまいます

 D3DFVF_XYZ -> D3DFVF_XYZRHWにしたらどうなりますか?

Libra

Re:画像のサイズ取得

#5

投稿記事 by Libra » 15年前

#define FVF_VERTEX2D ( D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1 )

のD3DFVF_XYZをD3DFVF_XYZRHWに変更したところ、例外が発生しなくなりました。


あと、今日ソースを見たところ、
SetTextureメソッドの位置が一箇所場所がずれていました・・・・。
パソコンの前で「うわあああああああああああああああああああああああ」と悶絶です。
画像も表示され、期待通りの仕様を満たすことが出来ました。


今は、画像をロードする構造体のVectorを1つ用意しているのですが、
もうひとつ、画像の切り抜き位置を格納するVectorを用意してやれば、
DXライブラリと同じ感じに画像のロード部分を扱えるのではないか、
と考えています。蛇足ですね(汗)。


Justyさん、手伝ってくださってありがとうございました。

閉鎖

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