Bonjour à tous ! 
J'ai besoin de vos lumières pour réaliser une fonction qui importe le contenu d'un fichier image 1024*1024 format .PNG (16 bits, 1 seul channel grayscale) dans une matrice 1024*1024. La valeur de chaque pixel de l'image se mettant dans la cellule correspondante de la matrice.
exemple: MatriceFinale(x,y) = ValeureImagePixelPosition(x,y)
Je vois comment extraire une couleur avec GetPixel d'un fichier RGB 8 bits par channel avec le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Public Function ExtractR(ByVal CurrentColor As Long) As Byte
ExtractR = CurrentColor And 255
End Function
Public Function ExtractG(ByVal CurrentColor As Long) As Byte
ExtractG = (CurrentColor \ 256) And 255
End Function
Public Function ExtractB(ByVal CurrentColor As Long) As Byte
ExtractB = (CurrentColor \ 65536) And 255
End Function
Private Declare Function GetPixel Lib "GDI32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
Dim R as Byte, G as Byte, B as Byte
Dim Color as Long
Color = GetPixel(Picture1.hDC, 35, 42)
R = ExtractR(Color)
G = ExtractG(Color)
B = ExtractB(Color) |
J'ai aussi recupéré le debut de la declaration pour stocker un png 16 bits grayscale:
Dim MyBitmap as Bitmap = New Bitmap (1024, 1024, Imaging.PixelFormat.Format16bppGrayScale)
Comment realiser ma fonction ?
Merci beaucoup pour vos conseils je ne parviens pas à mettre la main sur un tutorial ou un post de forum qui m'eclaire !
Partager