如何将 "System.Drawing.Image" 带到 DIB
How to bring "System.Drawing.Image" to DIB
我已经创建了一个可使用的 COM Class 库。
class 库获取相机的图像。它是图像/位图类型。
我在 VB6 中使用 class 库,我需要在 VB6 中显示此图像。
如何将此 System.Drawing.Image 转换为 VB6 可以显示的内容?
我可以使用 DIB(使用 CreateDIBSection 等)吗?
如果是,System.Drawing.Image 究竟如何转换为 DIB?
谢谢!
这是我过去所做的。首先,几个先决条件:
- 你从 COM Class 库中得到一个 Byte()
- 您设置了对 Microsoft Windows Image Aquisition Library
的引用
有了这些,代码就很简单了。 Camera
是一个 COM Class 库,其中 Retrieve
方法 returns 一个被加载到图像控件中的 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
我已经创建了一个可使用的 COM Class 库。
class 库获取相机的图像。它是图像/位图类型。
我在 VB6 中使用 class 库,我需要在 VB6 中显示此图像。
如何将此 System.Drawing.Image 转换为 VB6 可以显示的内容?
我可以使用 DIB(使用 CreateDIBSection 等)吗?
如果是,System.Drawing.Image 究竟如何转换为 DIB?
谢谢!
这是我过去所做的。首先,几个先决条件:
- 你从 COM Class 库中得到一个 Byte()
- 您设置了对 Microsoft Windows Image Aquisition Library 的引用
有了这些,代码就很简单了。 Camera
是一个 COM Class 库,其中 Retrieve
方法 returns 一个被加载到图像控件中的 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