tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルUSBカメラでの静止画をPictureboxに表示したい
記事No7764
投稿日: 2008/07/03(Thu) 02:51
投稿者ぬこ
2006/2/6に投稿された下記のスレッドで
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=3052&reno=no&oya=3052&mode=msgview&page=1050
(PictureBoxにUSBカメラの画像を表示させる方法)
YAS様が投稿されておりますサンプルコード
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=3133&reno=3095&oya=3052&mode=msgview&page=1050
をVB.NET2003で活用させて頂こうと思い相違箇所を訂正しているのですが、

Bmpの定義の部分でつまづいてしまいました。

Dim Bmp As New Bitmap( _
            BV.SourceWidth, _
            BV.SourceHeight, _
            -4 * BV.SourceWidth, _
            Imaging.PixelFormat.Format32bppRgb, _
            CType(CType(DIBImage, Integer) + (BufferSize - 4 * BV.SourceWidth),IntPtr))

上記のNew Bitmapの最後の引数の部分なのですが、
最初にIntPtrをInteger型に変換できないというエラーがでるので、
CType(DIBImage, Integer)をDIBImage.ToInt32 と変更しました。
すると次に、Integer型をIntPrtに変換できないと出たので、
Webを検索して見つけた方法で
IntPtr.op_Explicit(DIBImage.ToInt32 + (BufferSize - 4 * BV.SourceWidth)
上記のように訂正しました。

このようにしたところ、デバッグは通るようになり、動画が表示されるのですが、
静止画をキャプチャーしてPictureBoxに表示させようとButtonをクリックすると
真っ黒な画像が表示されてしまいます。

特にエラーは出ないのですが、この部分訂正した箇所に問題があるのではと思って
いるのですが、正しい方法をご教授頂けると助かります。

最後になりましたが、YAS様、すばらしいサンプルをありがとうございます。
ほとんど貼り付けるだけでカメラの動画を表示することができて驚きました。

[ツリー表示へ]