- - PR -
VB.NETでのBitBltの使用方法
1
投票結果総投票数:7 | |||
---|---|---|---|
Windows VB .NET | 7票 | 100.00% | |
|
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-08 20:16
いつもご利用させていただいております。
件名についてご助言いただけないでしょうか。 2つの画像(1枚はレイヤー画像、1枚は背景となる画像)を合成をするために、 BitBltを使用しようと検討しているのです。 しかし、2つの画像を合成する段階で、うまくいきません。 一応、他のサイトで調べたとおりしているのですが..... 作成したソースは以下のとおりです。 Dim disDC As IntPtr = GetDC(IntPtr.Zero) Dim imageFile As Image = Image.FromFile("C:\SAMPLE.bmp") Dim imageFile1 As Image = Image.FromFile("C:\SAMPLE2.bmp") 'Graphicsの作成 Dim g As Graphics = Graphics.FromImage(imageFile) Dim g1 As Graphics = Graphics.FromImage(imageFile1) 'Graphicsのデバイスコンテキストを取得 Dim hDC As IntPtr = g.GetHdc() Dim hDC1 As IntPtr = g1.GetHdc() Dim a As Boolean 'Bitmapに画像をコピーする a = BitBlt(hDC, 0, 0, imageFile.Width, imageFile.Height, hDC1, 0, 0, SRCCOPY) '解放 g.ReleaseHdc(hDC) g.Dispose() g1.ReleaseHdc(hDC1) g1.Dispose() ReleaseDC(IntPtr.Zero, hDC1) PictureBox1.Image = imageFile PictureBox1.Refresh() 開発環境 OS:WINDOWXP 言語:Microsoft Visual Basic .NET .NET Framework 1.1 以上です。 |
|
投稿日時: 2005-12-08 21:04
BitBltってどのクラスのメンバですか?
もしかしてWin32APIのあれ? >うまくいきません。 が具体的にどういうことなのか分かれば皆さんから助言を頂けるかと思います。 |
|
投稿日時: 2005-12-08 23:42
ご返答ありがとうございます。
説明不足で申し訳ありません。 >BitBltってどのクラスのメンバですか? >もしかしてWin32APIのあれ? ご指摘のとおりWin32APIのBitBltです。VB6では、いろいろサンプルが ありますが、VB.NETはサンプルも無く、困っております。 >が具体的にどういうことなのか分かれば皆さんから助言を頂けるかと思います。 imageFileに、imageFile1がコピーされると認識しておりましたが、実際に表示 させてみると、imageFileが表示されます。他に、「SRCAND(転送先へピクセルごとのAND演算で結合)」もためしてみましたが結果は一緒でした。 「SRCCOPY(転送先へそのままコピーする)」を「BLACKNESS(転送先を黒で塗りつぶす)」に変更すると、黒く表示されますので、処理自体ができていないことはないと思いますが... 使い方を間違っている気もしますが、画像編集系の開発自体はじめてですので、試行錯誤しております。 なにとぞご教授のほどお願いいたします。 |
|
投稿日時: 2005-12-08 23:48
どぼんさん(http://dobon.net)のTips
「PictureBoxのImageプロパティに関するよくある勘違い」 を見てみるとよいかも。 |
|
投稿日時: 2005-12-08 23:53
レイヤ合成って、System.Drawing.Graphics.DrawImage メソッドで出来ませんか?
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2005-12-09 09:52
ご助言ありがとうございました。
ご指摘をいただいてページの方法を試してみようとしましたが、 System.Drawing.Graphics.DrawImageで画像を表示できないようです。 ページに書いてあるサンプルをそのまま貼り付けて処理させていますので、 問題はないはずですが。 なにとぞご教授のほどお願いいたします。 |
|
投稿日時: 2005-12-12 13:50
じゃんぬねっと様に指摘していただいた方法で画像の合成ができました。 ご協力ありがとうございました。 |
1