2

このソースコードを使用してウェブカメラを使用して画像をキャプチャするプログラムがあります... http://www.thaiio.com/prog-cgi/vbnetwebcam.html これは、クリップボードから画像を取得して変換するサブですそれをビットマップに...

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    Dim data As IDataObject
    Dim bmap As Bitmap
    '
    ' Copy image to clipboard
    '
    SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)
    '
    ' Get image from clipboard and convert it to a bitmap
    '
    data = Clipboard.GetDataObject()
    If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
        bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap)
        picCapture.Image = bmap
        ClosePreviewWindow()
        btnSave.Enabled = False
        btnStop.Enabled = False
        btnStart.Enabled = True
        btnInfo.Enabled = False
        Trace.Assert(Not (bmap Is Nothing))
        sfdImage.Filter = ("Jpeg|*.jpg")
        If sfdImage.ShowDialog = DialogResult.OK Then
            bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Jpeg)
        End If
    End If
End Sub

おそらく、最初に元の形式を取得する必要があるため、メモリストリームに保存しようとすると、「値をnullにすることはできません。パラメーター名:エンコーダー」というエラーが表示されます。どうすればそれを行うことができますか?

4

1 に答える 1

0

この質問を投稿して申し訳ありませんが、私は答えを見つけました。ヘルプのためのthx。

Dim ms As New MemoryStream()

bmap.Save(ms、Imaging.ImageFormat.Jpeg)

Dim arrImage()As Byte = ms.GetBuffer

ms.Close()

于 2012-11-09T03:18:20.850 に答える