私はWinAPIを使ってC++で記述されたコントロールを持っています。私は自動的に正しく描画されているかどうかテストしたいと思います。私は描かれたイメージを保存されたリファレンスイメージと比較するか、特定のピクセルが特定の色を持っているかを単にテストすることができます。私は両方のタイプを実装しています。GDIでのコントロール描画のユニットテスト
問題は何らかの理由で16ビットの色深度しかない仮想マシンで毎晩テストが実行されるという問題です。これにより、色がわずかにオフになります。私は16ビットの色深度で描かれたときに変更されない色を思いついたが、丸めの仕方はやや複雑で、32bと16bの色深度の両方で機能するようにテストする必要がある。
もう1つのアイデアは、常に32bの色深度を持つオフスクリーンビットマップを作成することでした。テストで毎回同じ環境が使用されるというメリットがありますが、それを動作させることはできませんでした。画面の色の濃さに関係なく32b HBITMAPとHDCを作成するにはどうしたらいいですか?あるいは、一般的な問題を解決するためのヒントがありますか?
ありがとう
私はこのコードを正確に試しましたが、mem_dcを0(画面)から作成すると再び16bになるので動作しません。 –
@Roman:私はmemppを4bpp、8bpp、16bppに32bppのカラーウィンドウで作成しました。アップスケーリングが機能しないことを意味しますか? pls再チェック。また、問題は参照画像との比較結果コードと関連している可能性があります –
このコードは実際に動作し、私はあなたの助けを借りて私のバグを発見しました。 –