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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !