vb.net - 如何将“System.Drawing.Image”带到 DIB
问题描述
我创建了一个可消耗的 COM 类库。
类库获取相机的图像。它是图像/位图类型。
我在 VB6 中使用类库,我需要在 VB6 中显示此图像。
如何将此 System.Drawing.Image 转换为 VB6 可以显示的内容?
我可以使用 DIB(使用 CreateDIBSection 等)吗?
如果是,如何将 System.Drawing.Image 转换为 DIB?
谢谢!
解决方案
这是我过去所做的。首先,有几个先决条件:
- 你从 COM 类库中得到一个 Byte()
- 您设置了对Microsoft Windows 图像采集库的引用
有了这些,代码就很简单了。 Camera
是一个 COM 类库,其中该Retrieve
方法返回加载到 Image 控件中的 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
推荐阅读
- php - 如何检查变量是否具有语法以及如何将其拆分为数组?
- html - 将 folium.DivIcon 的大小与内容相匹配
- php - ++ & -- 使用 jquery 为购物车产品数量(PHP)的相同提交按钮发出问题
- python - ColumnTransformer 管道不返回功能名称
- dart - 如何将字符串转换为列表
在飞镖? - mapping - RML 中是否有针对输入的一个数据元素(单元格)中的多个复杂实体的解决方案,而无需清理输入数据?
- laravel - Bootstrap 汉堡菜单图标不会折叠
- javascript - 如何有条件地扩展快速请求定义,取决于使用中间件
- python - 用于oracle远程数据库连接的Python脚本
- gradle - 无法加载或找到 Gradle Main 类