vb.net - 如何将 "System.Drawing.Image"带到 DIB

标签 vb.net vb6 dib

我创建了一个可消耗的 COM 类库。

类库获取相机的图像。它的类型为图像/位图。

我在VB6中使用类库,我需要在VB6中显示这个图像。

如何将此 System.Drawing.Image 转换为 VB6 可以显示的内容?

我可以使用 DIB(使用 CreateDIBSection 等)吗?

如果是,System.Drawing.Image 究竟能转换成 DIB 吗?

谢谢!

最佳答案

这是我过去所做的。首先,有几个先决条件:

  • 你从 COM 类库中得到一个 Byte()
  • 您设置了对 的引用Microsoft Windows 图像采集库

  • 有了这些,代码就非常简单了。 Camera是一个 COM 类库,其中 Retrieve方法返回一个 Byte() ,它被加载到一个 Image 控件中:
    Option Explicit
    
    Private Sub cmdLoad_Click()
       Dim cam As Camera.Image
       Set cam = New Camera.Image
       Image1.Picture = LoadPictureFromByteArray(cam.Retrieve())
    End Sub
    
    Private Function LoadPictureFromByteArray(Image() As Byte) As StdPicture
       Dim vec As WIA.Vector
       Set vec = New WIA.Vector
       vec.BinaryData = Image
       Set LoadPictureFromByteArray = vec.ImageFile.FileData.Picture
    End Function
    

    关于vb.net - 如何将 "System.Drawing.Image"带到 DIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61370388/

    相关文章:

    c++ - 如何仅使用直接 WinAPI 将与设备无关的位图放入 Windows 剪贴板? (没有 MFC 或其他包装器)

    c# - 不使用反射无法降低工厂方法中的圈复杂度

    .net - 为什么会发生这种单例行为?

    vb.net - Visual Basic,预期的语句结尾-函数

    function - 传递给函数的 boolean 值未按预期工作

    c++ - Win API 中的内存 DC 有多便宜/多贵?

    vb.net - 帮助 Dispatcher.BeginInvoke

    c# - 将 C# 结构暴露给 VB6 应用程序的 COM 中断

    c# - MSXML 创建 XML "header"

    windows - Windows 位图和 DIBSection 之间有什么区别?