Как вывести «System.Drawing.Image» в DIB - PullRequest
4 голосов
/ 22 апреля 2020

Я создал расходную библиотеку классов COM.

Библиотека классов получает изображение с камеры. Он имеет тип Image / Bitmap.

Я использую библиотеку классов в VB6, и мне нужно показать это изображение в VB6.

Как я могу преобразовать этот System.Drawing.Image в нечто, что VB6 может отображать?

Могу ли я использовать DIB (используя CreateDIBSection и т. Д. c.)?

Если да, как точно можно преобразовать System.Drawing.Image в DIB?

Спасибо!

1 Ответ

6 голосов
/ 22 апреля 2020

Вот что я делал в прошлом. Во-первых, пара предварительных условий:

  • вы получаете Byte () из библиотеки классов COM
  • вы устанавливаете ссылку на Microsoft Windows Библиотека изображений Aquisition

С их помощью код довольно прост. 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
...