Transformer l'image d'une PictureBox en un tableau de bytes

Contenu du snippet

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
Function PictureToArray(ByRef img As IPicture) As Byte()
    Dim tBM     As BITMAP
    Dim abRet() As Byte
    Dim lSize   As Long
'    structure
    Call GetObject(img.handle, Len(tBM), tBM)
'   préparation du tableau
    lSize = (tBM.bmWidth * 3) And &HFFFFFFFC
    ReDim abRet(0 To lSize * tBM.bmHeight * 3)
'   attribution,  retour
    Call GetBitmapBits(img.handle, UBound(abRet), abRet(0))
    PictureToArray = abRet
    Erase abRet
End Function

Compatibilité : VB6

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.