画像処理のエラー

[戻る]
dd 2010/02/02(火) 17:28:15
いつもお世話になっています、ddです。

下記の参照して、画像処理をやっています。
http://eternalwindows.jp/graphics/bitmap/bitmap11.html

問題1
MirrorBits(hbmpBackbuffer, 0, 0, bm.bmWidth, bm.bmHeight, hbmpMem, crTransparent);
実行の結果:反転していなかった。画像が表示しています。

問題2
AlphaBits(hbmpBackbuffer, 0, bm.bmHeight + 10, bm.bmWidth, bm.bmHeight, hbmpMem,
crTransparent, 60);

実行エラー
調べるところで、
テスト画像のサイズ640*480 24ビット
bm.bmHeight + 10=480+10=490

LPBYTE GetBits(HBITMAP hbmp, int x, int y)の部分に
    lp += (bm.bmHeight - y - 1) * ((3 * bm.bmWidth + 3) / 4) * 4;
ここで
bm.bmHeight=480
y=490
(bm.bmHeight - y - 1)=-2
lp=0x00dfad80<不適切Ptr>

どこの問題でしょうか。アドバイスお願いいたします。

よろしくお願いします。
環境:.Net2002 Windows XP

dd 2010/02/02(火) 18:25:13
[[解決]]
自分で解決しました。

AlphaBits(hbmpBackbuffer, 0, bm.bmHeight + 10, bm.bmWidth, bm.bmHeight, hbmpMem,
bm.bmHeight + 10ではないので、
0にすれば、反転と透過を表示しています。

すみませんでした。

古いスレッドには追加発言できません。