如何将 "System.Drawing.Image" 转换为 DIB。

4

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

该类库获取相机的图像,类型为图片/位图。

我在VB6中使用该类库,并需要在VB6中显示此图像。

我如何将这个System.Drawing.Image转换为VB6可以显示的东西?

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

如果可以,那么如何将System.Drawing.Image精确地转换为DIB?

谢谢!

1个回答

6

以下是我过去做过的事情。首先,需要满足以下几个前提条件:

  • 从COM类库中获取一个Byte()。
  • 设置对Microsoft Windows Image Acquisition Library的引用。

有了这些前提条件,代码就非常简单了。 Camera 是一个 COM 类库,其中Retrieve方法返回一个 Byte(),该字节载入到图像控件中:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接