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

尝试将其保存在 Memorystream 上时出现错误“值不能为空。参数名称:编码器” ,可能是因为我应该先获取原始格式。关于我该怎么做的任何想法?

4

1 回答 1

0

抱歉发布这个问题,我想出了答案。谢谢帮助。

将 ms 调暗为新的 MemoryStream()

bmap.Save(毫秒,Imaging.ImageFormat.Jpeg)

Dim arrImage() As Byte = ms.GetBuffer

ms.Close()

于 2012-11-09T03:18:20.850 回答