メモリ上のビットマップデータの拡大・縮小コピー
Posted: 2009年8月25日(火) 19:17
お邪魔します。
題名の通り、メモリ上のビットマップデータを拡大、縮小をStretchBltを用いて施し、
それを一時保存しようとしています。
ここでソースを書くのはかなり見づらくなるので、プロジェクトごとアップしました。
(画像読み込みには、ルーチェ's Homepage管理人様、ルーチェさんの作成されたimgct.dllを使用しています)
問題となっているのは、Graph.cppの関数DrawRoteです。
自分はビットマップデータをメインビットマップと
マスクビットマップに分けて管理しています。
一連の流れですが、
1.メインビットマップデータを拡大し、StretchBltでtempBmpBfに保存
2.CreatMaskBmpによって、マスクビットマップデータ作成
です。現段階では、描写すると、四角形が赤で塗りつぶされて表示されます。
恐らく、ビットマップデータをtempBmpBfにコピーする段階で
うまく行われていないのですが、自分の知識では、解決できないでいます。。
裏描写用のデバイスコンテキストhdcから
CreateCompatibleDC
CreateCompatibleBitmap
SelectObject
の順で一時保存用のビットマップとそのデバイスコンテキストを生成しているのですが・・・
この段階で既に問題があるのか・・・
説明が足りない部分があるのなら、聞いてください。。
よろしくお願いします。
Ne_60622.zip
http://www1.axfc.net/uploader/Ne/so/60622
DLキー:kazuoni
#補足
なぜ、一時保存しているのかというと、拡大したものを
回転する関数でもあるので、一時拡大したものを保存しておき、
そこから、保存したものを、回転して描写したいというものによります。
題名の通り、メモリ上のビットマップデータを拡大、縮小をStretchBltを用いて施し、
それを一時保存しようとしています。
ここでソースを書くのはかなり見づらくなるので、プロジェクトごとアップしました。
(画像読み込みには、ルーチェ's Homepage管理人様、ルーチェさんの作成されたimgct.dllを使用しています)
問題となっているのは、Graph.cppの関数DrawRoteです。
自分はビットマップデータをメインビットマップと
マスクビットマップに分けて管理しています。
一連の流れですが、
1.メインビットマップデータを拡大し、StretchBltでtempBmpBfに保存
2.CreatMaskBmpによって、マスクビットマップデータ作成
です。現段階では、描写すると、四角形が赤で塗りつぶされて表示されます。
恐らく、ビットマップデータをtempBmpBfにコピーする段階で
うまく行われていないのですが、自分の知識では、解決できないでいます。。
裏描写用のデバイスコンテキストhdcから
CreateCompatibleDC
CreateCompatibleBitmap
SelectObject
の順で一時保存用のビットマップとそのデバイスコンテキストを生成しているのですが・・・
この段階で既に問題があるのか・・・
説明が足りない部分があるのなら、聞いてください。。
よろしくお願いします。
Ne_60622.zip
http://www1.axfc.net/uploader/Ne/so/60622
DLキー:kazuoni
#補足
なぜ、一時保存しているのかというと、拡大したものを
回転する関数でもあるので、一時拡大したものを保存しておき、
そこから、保存したものを、回転して描写したいというものによります。