Convertion image en niveaux de gris

Soyez le premier à donner votre avis sur cette source.

Vue 3 929 fois - Téléchargée 455 fois

Description

Vous trouverez dans le zip un feuille VB 6.0 qui vous permet la convertion d'une image couleurs en niveaux de gris.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_clementpat
Messages postés
406
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
25 janvier 2014
-
super programme , sans api ,bravo tres bien fait, felicitation 10/10
ennixo
Messages postés
225
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
17 juin 2006
-
C'est terriblement LENT !!!!
en utilisant des bitmabits je mets 0.391 sec pour désaturer une image en 2048 * 1536 !!!!
penses aux BITMAPBITS !!!
ebe_tic
Messages postés
15
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
14 mars 2006
-
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és
225
Date d'inscription
samedi 25 janvier 2003
Statut
Membre
Dernière intervention
17 juin 2006
-
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)

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.

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.