Преобразование пикселей изображения Picture Box в массив байтов в VB6 - PullRequest
3 голосов
/ 11 ноября 2008

У меня есть окно изображения VB6, которое получает изображение с устройства захвата видео.

Я пытаюсь выяснить, как преобразовать графический блок в байтовый массив.

Ответы [ 2 ]

4 голосов
/ 11 ноября 2008
Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type

Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long

Private Sub GetPictureBytes()
  Dim PicBits() As Byte, PicInfo As BITMAP

  GetObject Picture1.Picture, Len(PicInfo), PicInfo

  ReDim PicBits((PicInfo.bmWidth * PicInfo.bmHeight * 3) - 1) As Byte

  GetBitmapBits Picture1.Picture, UBound(PicBits), PicBits(0)
End Sub
2 голосов
/ 11 ноября 2008

Прошло много времени с тех пор, как я работал с VB6, но, насколько я помню, вы можете просто сериализовать изображение в PropertyBag и получить содержимое в виде байтового массива.

Единственная известная мне альтернатива требует интенсивного использования WinAPI для достижения той же цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...