我已创建了一个可消耗的COM类库。
该类库获取相机的图像,类型为图片/位图。
我在VB6中使用该类库,并需要在VB6中显示此图像。
我如何将这个System.Drawing.Image转换为VB6可以显示的东西?
我可以使用DIB(使用CreateDIBSection等)吗?
如果可以,那么如何将System.Drawing.Image精确地转换为DIB?
谢谢!
以下是我过去做过的事情。首先,需要满足以下几个前提条件:
有了这些前提条件,代码就非常简单了。 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