トップページ > 記事閲覧
WinAPIでのbmpの表示について
名前:東海鉄道 日時: 2022/12/29 21:37

お久しぶりです 今回はDxLibというよりはDirectXの事に関しての質問になります 今までずっとDxLibを使わせてもらっていたのですが ある時ふとDxLibなしでコードを組んでみたいと思い 少しずつ直接WinAPIを使ったコードを作ってきました ttps://www.youtube.com/あっとuser-mr1nj7zq8w/ (アットをアットマークにしてください) こちらの方の動画を参考に作ってきたのですが Part5のビットマップの表示がうまくいかず困っています hBitmapにはNULLが代入されているだけで画面にも画像は表示されていません GetLastError関数でも0が返ってくるだけで何が原因かもわかりません どうすればよいのでしょうか
メンテ

Page: 1 |

Re: WinAPIでのbmpの表示について ( No.1 )
名前:管理人 日時:2022/12/30 01:54

hBitmap に NULL が代入されているということは LoadImage が失敗しているということです LoadImage の第二引数で指定するbmpファイルのパスが誤っているか、LoadImage が対応していない bmpファイルの可能性があると思います
メンテ
Re: WinAPIでのbmpの表示について ( No.2 )
名前:東海鉄道 日時:2022/12/30 21:13

std::filesystem::existsはtrueだったのでパスは正しいと思われます よってLoadImageに対応していないbmpファイルという可能性が高いですが 何がいけないのでしょう…と書こうと思ったのですが一応ペイントでもやってみようと思い(普段はGIMPです) ペイントでbmp保存をしてみました すると何とか表示することができました ありがとうございました 最後に一つお聞きしたいのですが GIMPで保存するbmpとペイントで保存するbmpはどう違うのでしょうか GIMPのbmp保存の形式をすべて試してもダメでした どのような違いがあるのでしょう?
メンテ
Re: WinAPIでのbmpの表示について ( No.3 )
名前:管理人 日時:2022/12/31 00:08

> GIMPで保存するbmpとペイントで保存するbmpはどう違うのでしょうか > GIMPのbmp保存の形式をすべて試してもダメでした > どのような違いがあるのでしょう? LoadImage やGIMPやペイントを作ったのは私ではないので分かりません (^ ^; ペイントで作成したbmpとGIMPで作成したbmpをzipで圧縮してこちらのメールアドレス BQE00322(あっとまーく)nifty.ne.jp (あっとまーく)を@に置き換えてください に送っていただければ私の方で違いを確認してみます m(_ _)m ( 私の手元にもペイントやGIMPはありますが、どちらもバージョンによって作成される bmpの内部形式が異なる可能性があるので、東海鉄道さんの環境で作成されたbmpファイルを いただければと思います )
メンテ
Re: WinAPIでのbmpの表示について ( No.4 )
名前:東海鉄道 日時:2023/01/01 20:41

送信させていただきました 正しく届いていますでしょうか よろしくお願いいたします
メンテ
Re: WinAPIでのbmpの表示について ( No.5 )
名前:東海鉄道 日時:2023/01/02 20:54

追記です 少し遅くなりましたが あけましておめでとうございます
メンテ
Re: WinAPIでのbmpの表示について ( No.6 )
名前:管理人 日時:2023/01/02 21:28

あけましておめでとうございます! メールありがとうございます、添付の bmpファイルも無事届きました m(_ _)m 2つの bmpファイルの違いはヘッダーの構造でした bmpファイルの構造はこちらのページで解説されているようになっているのですが <noocyte のプログラミング研究室 bmpファイルのフォーマット> http://www5d.biglobe.ne.jp/~noocyte/Programming/Windows/BmpFileFormat.html#BITMAPV5HEADER ペイントで作成されたbmpファイルのヘッダは BITMAPINFOHEADER となっていて、 GIMPで作成されたbmpファイルのヘッダは BITMAPV5HEADER となっていました DXライブラリではどちらの場合も問題なく読み込めるのですが、LoadImage については こちらのブログ記事によると <手づくりアプリの裏側 DIB:アルファチャネル> http://yuzublo.blog48.fc2.com/blog-category-4.html ヘッダが BITMAPV5HEADER となっている bmpファイルは LoadImage では読み込めないそうです 仕様としては BITMAPINFOHEADER の後に作られたのが BITMAPV5HEADER なので、単純に LoadImage が 新しい bmpファイルの仕様に対応していないということなのだと思います
メンテ
Re: WinAPIでのbmpの表示について ( No.7 )
名前:東海鉄道(解決済み) 日時:2023/01/04 17:44

なるほどヘッダーの違いだったのですね よくわかりました ありがとうございました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存