トップページ > 記事閲覧
特定のBMP画像ファイルの表示が横に伸びる
名前:ssss 日時: 2020/06/15 15:52

いつもお世話になっております。 数年前から作っているプログラムのDXライブラリを久しぶりに最新に入れ替えたところ、 特定のBMP画像の表示がおかしくなるという現象が発生しました。 ぱっと見た感じ、1ピクセルごとに横にずれて表示されているようです。 「赤青黄」という画像なら「赤白青白黄白」というように。 問題のBMP画像をPNG画像に変換したところ、正常に表示されました。 それをさらにBMPに再変換した場合、前述の異常表示になりました。 また、同じサイズの別のBMP画像を用意してみましたが、こちらは正常に表示されました。 特定のBMP画像だけが横に伸びるようになってしまっています。 手持ちのDXライブラリの旧バージョンを試してみたところ 3.11Bでは正常に表示されました。 (3.15とか3.17あたりは、ウィルスソフトが反応してそもそもコンパイルできませんでした) 3.21fでは異常になりました。 実行環境は Windows8.1 Geforce GTX 1080 モニタを二台(通常のモニタと液晶タブレット)で使っています。 モニタの解像度は1920×1080です。 サンプルを以下に示します。 //ここからサンプル-------------------------------------------------------------------- #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int GHandle ; ChangeWindowMode( TRUE ) ; if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } //問題のBMP画像 GHandle = LoadGraph( "test1.bmp" ) ; DrawGraph( 0 , 0 , GHandle , TRUE ) ; DeleteGraph( GHandle ) ; WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用) //問題の画像をPNGに変換したもの GHandle = LoadGraph( "test1.png" ) ; DrawGraph( 0 , 0 , GHandle , TRUE ) ; DeleteGraph( GHandle ) ; WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用) //全く別のBMP画像 GHandle = LoadGraph( "test2.bmp" ) ; DrawGraph( 0 , 0 , GHandle , TRUE ) ; DeleteGraph( GHandle ) ; WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } //ここまでサンプル-------------------------------------------------------------------- サンプルに利用する画像ファイルは以下のアップローダーに用意しました。 https://21.gigafile.nu/0814-d34f1eea0365b2a7156411e323afc120b ダウンロードパスワード DXte 現象が再現できなかった時のために、簡単ですが説明用画像も含めてあります。 ご確認いただけると幸いです。
メンテ

Page: 1 |

Re: 特定のBMP画像ファイルの表示が横に伸びる ( No.1 )
名前:管理人 日時:2020/06/16 00:24

現象確認用のBMP画像をアップしていただきありがとうございます すみません、DXライブラリの BMP画像の読み込み処理は全ての BMPの形式に対応していないので 対応していない形式の場合は Win32 API を使用して標準的な 24bitカラーの BMP画像に変換してから 読み込むようにしているのですが、自前コードでの対応BMP形式を増やした時に 『対応していないBMP形式の場合標準的な24bitカラーの BMP画像に変換する』処理が一部正常に 動作しないようになってしまっていました ( なのでこの変更を加える前の古いバージョンでは正常に読み込めた、というわけです ) アップしていただいた BMP画像も正常に読み込めるように修正したバージョンをアップしましたので、 よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: 特定のBMP画像ファイルの表示が横に伸びる ( No.2 )
名前:ssss(解決) 日時:2020/06/16 15:52

お世話になります。 修正バージョンを使いましたら、正常に表示されるようになりました。 早速の対応ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存