Public Declare Function GetPixel Lib "gdi32" ( _ ByVal hDC As Long, _ ByVal X As Long, _ ByVal Y As Long) As Long Public Declare Function SetPixel Lib "gdi32" ( _ ByVal hDC As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal crColor As Long) As Long Public Sub GrayScale(ByRef picSRC As PictureBox, ByRef picDST As PictureBox) Dim Y As Integer, X As Integer Dim c As Long, R As Long, v As Long, G As Long, B As Long picDST.Width = picSRC.Width picDST.Height = picSRC.Height picDST.AutoRedraw = False Dim luma As Long For Y = 0 To picSRC.ScaleHeight For X = 0 To picSRC.ScaleWidth c = GetPixel(picSRC.hDC, X, Y) Call GetRGB(c, R, G, B) luma = CInt(R * 0.3 + G * 0.59 + B * 0.11) Call SetPixel(picDST.hDC, X, Y, RGB(luma, luma, luma)) Next X Next Y End Sub 'Get R G B values / récupère les couleurs R V B Public Sub GetRGB(ByVal Color As Long, ByRef R As Long, ByRef G As Long, ByRef B As Long) B = ((((Color \ 65536) And 255) * 50) + (((Color \ 65536) And 255) * 50)) \ 100 G = ((((Color \ 256) And 255) * 50) + (((Color \ 256) And 255) * 50)) \ 100 R = (((Color And 255) * 50) + ((Color And 255) * 50)) \ 100 End Sub
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.