2008-11-10 2 views

ответ

4
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 
+1

, а что делать в обратном порядке, а также вы также можете отправить код с кодом собственности? – Smith 2013-04-02 12:53:56

2

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

Единственная альтернатива, которую я знаю, требует интенсивного использования WinAPI для достижения того же.

+2

Можете ли вы опубликовать образец кода – Smith 2013-04-02 13:17:57