DIBのピクセルの書き換えについて

解決


名無し  2005-02-25 00:03:48  No: 56537  IP: 192.*.*.*

DIB(640x480ピクセルですべてのピクセルが黒)を作成しそのDIBをDCに描画することはできたのですが、作成したDIBのピクセルの色を変えて描画する方法がわかりません。
どなたかご指導をお願いしたいと思います。
よろしくお願いします。

編集 削除
いおり  2005-02-25 11:05:54  No: 56538  IP: 192.*.*.*

::SetPixel

もしくは CreateDIBSection などでDIBのビット列を取得できているのなら、
直接ビット列を操作しても可能。
ただし、ビット列がどのような色フォーマットになっているかは
作成時の設定によって異なるので注意してください。

編集 削除
たく  2005-02-25 11:06:54  No: 56539  IP: 192.*.*.*

すぐにおもいつくのは
・GetDIBitsでビット配列を取得し書き換える
・DCに選択後、SetPixelで書き換える
のどちらか

すべてのPIXELを同じ色にするのであれば
FillRectやFillSolidRect(MFC)のほうが楽かもしれません

編集 削除
名無し  2005-02-25 12:30:40  No: 56540  IP: 192.*.*.*

SetPixelで色を設定すると遅いですよね?

編集 削除
Ban  2005-02-25 12:48:05  No: 56541  IP: 192.*.*.*

遅いです。

編集 削除
変人  2005-02-25 19:37:01  No: 56542  IP: 192.*.*.*

これは、DIBのピクセルの内容を変えたい、と言うこと?
それなら、SetPixelなどのGDIではなくメモリ上のフレームバッファを
直接書き換えることになります(DIBは、そうしたピクセル列への直接
アクセスを行うための仕組み)。

編集 削除
名無し  2005-03-03 17:43:52  No: 56543  IP: 192.*.*.*

いろいろやっていたらできるようになりました。ありがとうございました。

編集 削除