C'est une alternative à la fonction LoadPicture() . Son but est uniquement de montrer comment fonctionne un fichier BITMAP 24 bits.
Source / Exemple :
Public Function OuvrirBMP(Fichier As String, pBox As PictureBox, Optional ErrAvertir As Boolean = False) As Boolean
Dim Contenu() As Byte, Longueur As Long
Dim a As Long
Dim fFile As Long
Dim X As Long, Y As Long
Dim iWidth As Long, iHeight As Long
Dim pHDC As Long
fFile = FreeFile
pBox.Cls
Longueur = FileLen(Fichier)
ReDim Contenu(1 To Longueur)
'On ouvre le fichier pour le mettre dans un tableau
Open Fichier For Binary Access Read As #fFile
Get #fFile, 1, Contenu
Close #fFile
X = 0: Y = 0
a = Contenu(11) + 1 'On détermine la longueur de l'entête grâce au fichier
'Déterminer les dimentions de l'image
iHeight = (Contenu(24) * 256) + Contenu(23)
iWidth = (Contenu(20) * 256) + Contenu(19)
If Int((Longueur - a + 1) / (iHeight * iWidth)) <> 3 Then
If ErrAvertir = True Then MsgBox "Seul les images 24 bits sont acceptées", vbCritical
OuvrirBMP = False
Exit Function
End If
pBox.Width = iWidth 'iWidth
pBox.Height = iHeight 'iHeight
'pHDC = GetDC(pBox.hwnd)
Do While (a <= Longueur)
pBox.PSet (X, iHeight - Y - 1), RGB(Contenu(a + 2), Contenu(a + 1), Contenu(a))
'SetPixel pHDC, X, iHeight - Y - 1, RGB(Contenu(a + 2), Contenu(a + 1), Contenu(a))
X = X + 1
If X = iWidth Then X = 0: Y = Y + 1
a = a + 3
Loop
OuvrirBMP = True
End Function
Conclusion :
Je vous dirais bien joyeux noël, mais il reste encore 2 jours, alors il serait inapproprié de le dire.
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.