• ベストアンサー

VB.NETでPictureBox間で論理演算

VB6で作成したツールをVB2008に移植中に画像処理で躓きました。 BitBlt trghDC, trgLeft, trgTop, srcWidth, srcHeight, srchDC, 0, 0, vbSrcAnd こんな感じでPictureBoxから別のPictureBoxへAND処理をしてコピーをしたいのですが、 VB.NETではBitBltを使えないとのことで、代わりの方法を探したのですが、単なるコピーばかりで論理演算つきのサンプルが見つかりません。 何か方法はないでしょうか。 1ドットごとに処理してコピーでは遅すぎて話にならないので×です。 ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

VB.NET で BitBlt を使用したサンプルがありました。 http://www.codeproject.com/KB/GDI-plus/BitBlt.aspx サンプルは SRCCOPY だったので、SRCAND にして試してみましたけど、正常に動作しているようでした。

DESTROY11
質問者

お礼

ありがとうございます。参考にさせていただきます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ピクチャーボックスの矩形をスクリーン座標に変換してGraphics.CopyFromScreenを使えば出来そうですよ スクリーン座標への変換は Me.PointToScreenかPictureBox1.PointToScreenで出来ると思います dim pt1, pt2 as Point, g as Graphics pt1 = me.PointToScreen( PictureBox1.Location ) pt2 = me.PointToScreen( PictureBox2.Location ) g = PictureBox2.CreateGraphics() g.CopyFromScreen( p1.x, p1.y, p2.x, p2.y, PictureBox1.Size,SourceAnd) g.Dispose() といった具合かと ・・・ コードの検証はしていません

DESTROY11
質問者

お礼

ありがとうございます。参考にさせていただきます。