QuartzTypeLib.IBasicVideo.GetCurrentImageについて – プログラミング – Home

通知
すべてクリア

QuartzTypeLib.IBasicVideo.GetCurrentImageについて


usao
 usao
(@usao)
ゲスト
結合: 21年前
投稿: 1
 

aviファイルを再生中にフレームのビットマップデータを取得して、
そのビットマップを表示したいのですがどうしても上手くいきません。
どなたかご教授願えないでしょうか?
'mGrp:QuartzTypeLib.FilgraphManager
'bv:QuartzTypeLib.IBasicVideo
Dim bmpInfo As BITMAPINFO
Dim rc
Dim bfSize As Long
Dim buf() As Long

 mGrp.Pause

 With bmpInfo
  With .bmiHeader
   .biSize = Len(bmpInfo.bmiHeader)
   .biWidth = bv.VideoWidth
   .biHeight = bv.VideoHeight
   .biPlanes = 1
   .biBitCount = 32
   .biCompression = 0
   .biSizeImage = 0
   .biXPelsPerMeter = 0
   .biYPelsPerMeter = 0
   .biClrUsed = 0
   .biClrImportant = 0
  End With
 End With

 bfSize = bv.VideoWidth * bv.VideoHeight * 4 - 1
 ReDim buf(bfSize)

 bv.GetCurrentImage bfSize, buf(0)
 rc = SetDIBitsToDevice(Me.Picture2.hdc, 0, 0, _
     bv.VideoWidth, bv.VideoHeight, _
     0, 0, 0, bv.VideoHeight, _
     buf(0), bmpInfo, 0)
 If rc > 0 Then
  MsgBox 成功?
 Else
  MsgBox 失敗
 End If
これだとノイズのようなビットマップが表示されます。
どこがまずいんでしょうか?


引用解決済
トピックタグ

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました