Bonjour voila j'ai récupéré sur ce site un module pour traiter les images très intéressant :
http://www.vbfrance.com/article.aspx?ID=4923
Et il y a une fonction toute particulière qui a retenue mon attention.
------------------------------------------------------------------------------------
Public Function MoinsDeCouleurs(ByVal Pic As Long, ByVal Nb_Bits As Long) As Long
GetObject Pic, Len(PicInfo), PicInfo '<--Chargemant des informations sur l'immage dans Picinfo(TRES IMPORTANT !!!!!!!!)
hdcnew = CreateCompatibleDC(0&) 'Creation d'un nouveau HDC virtuel pour pouvoir y adapter le filtre
'********Chargement en memoire des informations sur l'immage******
With DIBInfo.bmiHeader
.biSize = 40
.biWidth = PicInfo.bmWidth
.biHeight = -PicInfo.bmHeight 'Les bmp sont stockes a l'envers, on les remet a l'endroit
.biPlanes = 1
.biBitCount = Nb_Bits
.biCompression = BI_RGB
BytesPerScanLine = ((((.biWidth * .biBitCount) + 31) \ 32) * 4) 'Lignes
PadBytesPerScanLine = _
BytesPerScanLine - (((.biWidth * .biBitCount) + 7) \ 8)
.biSizeImage = BytesPerScanLine * Abs(.biHeight)
End With
' 1-R,2-G,3-B Xmax YMax
ReDim Bit_Map(1 To 4, 1 To PicInfo.bmWidth, 1 To PicInfo.bmHeight) As Byte
'Cargement en memoire de l'immage telle qu'elle existe maintenant et on la copie
'dans le nouveau HDC
GetDIBits hdcnew, Pic, 0, PicInfo.bmHeight, Bit_Map(1, 1, 1), DIBInfo, DIB_RGB_COLORS
SetDIBits hdcnew, Pic, 0, PicInfo.bmHeight, Bit_Map(1, 1, 1), DIBInfo, DIB_RGB_COLORS
End Function
------------------------------------------------------------------------------------
Cette fonction fonctionne très bien quand Nb_Bits est égale à 1 ou 4 mais quand je met à 8, la fonction fonctionne mais le programme crash des que je ferme la fenêtre ou sur certains actions. Alors que j'aurai vraiment bien voulu pouvoire utiliser cette fonction à 8 sans les crash qui se suivent... vous avez une idée pourquoi à 8 sa crash ?
1 = Noir et Blanc
4 = 16 couleurs
8 = 256 Couleurs ( mais crash :( )
kakenette