cs_clementpat
Messages postés406Date d'inscriptionlundi 2 décembre 2002StatutMembreDernière intervention25 janvier 2014
-
3 févr. 2003 à 17:44
ennixo
Messages postés224Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention17 juin 2006
-
21 mai 2004 à 12:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ennixo
Messages postés224Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention17 juin 2006 21 mai 2004 à 12:17
Suffit de demander !
' DECLARATIONS Public 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
Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Public Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Public Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
' INVERSION ' ce code est à mettre à l'endroit ou on veut inverser l'image
' dans un click de bouton par exemple
' P est la pictureBox contenant l'image qu'on veut inverser.
' AutoSize = True
' AutoRedraw = True
Dim i As Long
Dim iMax As Long
GetObject P.Image, Len(PicInfo), PicInfo
BytesPerLine = (PicInfo.bmWidth * 3 + 3) And &HFFFFFFFC
ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight * 3)
' et voilà ! Il est a noté que pour plus de rapidité, il faut compiler le code
' et dans Projet > Propriétés, onglet Compilation
' il faut Optimiser pour la rapidité du code
' et dans
' Optimisations avancées :
' cocher toutes les cases.
ebe_tic
Messages postés15Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention14 mars 2006 21 mai 2004 à 09:05
Ce n'est peut être pas très rapide mais c'est très efficace ! Bravo, c'est ce que je cherchais.
Ennixo: as tu un exemple utilisant les bitmapbits ?
ennixo
Messages postés224Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention17 juin 2006 5 nov. 2003 à 15:10
C'est terriblement LENT !!!!
en utilisant des bitmabits je mets 0.391 sec pour désaturer une image en 2048 * 1536 !!!!
penses aux BITMAPBITS !!!
cs_clementpat
Messages postés406Date d'inscriptionlundi 2 décembre 2002StatutMembreDernière intervention25 janvier 2014 3 févr. 2003 à 17:44
super programme , sans api ,bravo tres bien fait, felicitation 10/10
21 mai 2004 à 12:17
' DECLARATIONS
Public 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
Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Public Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Public Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
' INVERSION
' ce code est à mettre à l'endroit ou on veut inverser l'image
' dans un click de bouton par exemple
' P est la pictureBox contenant l'image qu'on veut inverser.
' AutoSize = True
' AutoRedraw = True
Dim i As Long
Dim iMax As Long
GetObject P.Image, Len(PicInfo), PicInfo
BytesPerLine = (PicInfo.bmWidth * 3 + 3) And &HFFFFFFFC
ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight * 3)
GetBitmapBits P.Image, UBound(PicBits), PicBits(1)
iMax = UBound(PicBits)
For i = 1 To iMax Step 4
PicBits(i) = Not PicBits(i)
PicBits(i + 1) = Not PicBits(i + 1)
PicBits(i + 2) = Not PicBits(i + 2)
Next i
SetBitmapBits P.Image, UBound(PicBits), PicBits(1)
P.Refresh
' et voilà ! Il est a noté que pour plus de rapidité, il faut compiler le code
' et dans Projet > Propriétés, onglet Compilation
' il faut Optimiser pour la rapidité du code
' et dans
' Optimisations avancées :
' cocher toutes les cases.
21 mai 2004 à 09:05
Ennixo: as tu un exemple utilisant les bitmapbits ?
5 nov. 2003 à 15:10
en utilisant des bitmabits je mets 0.391 sec pour désaturer une image en 2048 * 1536 !!!!
penses aux BITMAPBITS !!!
3 févr. 2003 à 17:44