Soyez le premier à donner votre avis sur cette source.
Vue 7 839 fois - Téléchargée 676 fois
Private Declare Function SetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long Private Type BITMAPINFOHEADER biSize As Long biWidth As Long biHeight As Long biPlanes As Integer biBitCount As Integer biCompression As Long biSizeImage As Long biXPelsPerMeter As Long biYPelsPerMeter As Long biClrUsed As Long biClrImportant As Long End Type Private Type RGBQUAD rgbBlue As Byte rgbGreen As Byte rgbRed As Byte rgbReserved As Byte 'PS : si quelqu'un sait à quoi ça sert, je suis preneur End Type Private Type BITMAPINFO bmiHeader As BITMAPINFOHEADER bmiColors As RGBQUAD End Type Dim BMPINFO As BITMAPINFO Dim BMPINFOH As BITMAPINFOHEADER Private Buffer() As RGBQUAD 'tampon dans lequel on place l'image d'un PictureBox 'procédure pour placer l'image dans le tampon 'PichDC : hDC du PictureBox concerné 'PicImHandle : handle de l'image contenue dans le PictureBox 'x,y : Largeur et hauteur de l'image en Pixels Public Sub PicToBuffer(PichDC As Long, PicImHandle As Long, x As Long, y As Long) ReDim Buffer(x, y) With BMPINFOH .biBitCount = 32 'profondeur de couleur .biHeight = y + 1 'on doit rajouter 1 parceque l'index commence à 0 .biWidth = x + 1 .biPlanes = 1 'PS : si quelqu'un sait à quoi ça sert, je suis preneur .biSize = Len(BMPINFOH) End With BMPINFO.bmiHeader = BMPINFOH 'on met les données du Bitmap dans le tableau GetDIBits PichDC, PicImHandle, 0, y + 1, Buffer(0, 0), BMPINFO, 0 End Sub 'procédure pour afficher le tampon dans un PictureBox 'PichDC : hDC du PictureBox concerné 'PicImHandle : handle de l'image contenue dans le PictureBox Public Sub BufferToPic(PichDC As Long, PicImHandle As Long) Dim x As Long Dim y As Long 'on prend les dimensions de l'image (et donc du tampon) x = UBound(Buffer, 1) y = UBound(Buffer, 2) With BMPINFOH .biBitCount = 32 .biHeight = y + 1 .biWidth = x + 1 .biPlanes = 1 .biSize = Len(BMPINFOH) End With BMPINFO.bmiHeader = BMPINFOH 'on affiche... SetDIBits pihdc, PicImHandle, 0, y + 1, Buffer(0, 0), BMPINFO, 0 End Sub
7 août 2003 à 13:27
Les deux subs(buffer) me plaisent bien ca me servira aussi pour autre chose.
Duss
7 août 2003 à 15:36
Le c'est juste pour le nombre de couleur.
A++
[Gally Home Corp]
8 août 2003 à 15:17
mais il ne fonctionne pas chez moi .
quand je clic sur pivoter droite ou pivoter gauche , cela me reduit la picture box , et me cache simplement les AILES de la fille .
aucune rotation ! je suis sous vb6 entreprise et windows millenium !!!
8 août 2003 à 15:28
Donc, là comme ça je saurais pas t'aider, désolé.
Bonne prog.
MoiOlivier.
9 août 2003 à 13:23
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.