DIB(640x480ピクセルですべてのピクセルが黒)を作成しそのDIBをDCに描画することはできたのですが、作成したDIBのピクセルの色を変えて描画する方法がわかりません。
どなたかご指導をお願いしたいと思います。
よろしくお願いします。
::SetPixel
もしくは CreateDIBSection などでDIBのビット列を取得できているのなら、
直接ビット列を操作しても可能。
ただし、ビット列がどのような色フォーマットになっているかは
作成時の設定によって異なるので注意してください。
すぐにおもいつくのは
・GetDIBitsでビット配列を取得し書き換える
・DCに選択後、SetPixelで書き換える
のどちらか
すべてのPIXELを同じ色にするのであれば
FillRectやFillSolidRect(MFC)のほうが楽かもしれません
SetPixelで色を設定すると遅いですよね?
遅いです。
これは、DIBのピクセルの内容を変えたい、と言うこと?
それなら、SetPixelなどのGDIではなくメモリ上のフレームバッファを
直接書き換えることになります(DIBは、そうしたピクセル列への直接
アクセスを行うための仕組み)。
いろいろやっていたらできるようになりました。ありがとうございました。
ツイート | ![]() |