[.net 2003]

Résolu
cs_gayelle Messages postés 4 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006 - 24 janv. 2006 à 08:58
cs_gayelle Messages postés 4 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006 - 30 janv. 2006 à 10:41
Bonjour!!!

Je suis au bord de la depression...
Je doit récuperer la couleur de tout les pixels d'une image.
J'ai decouvert la superbe fonction GetPixel(x,y) seulement pour parcourir toute l'image, il est dans deux boucle imbriqué.... et "erreur: parametre non valide!!" au secour j'en peu plus!!!!

mon code:

Dim photo As New Bitmap(Fichier)
Hauteur = photo.Height
Largeur = photo.Width
For i = 0 To Hauteur
For j = 0 To Largeur
Pixel.X = i
Pixel.Y = j
Couleur = photo.GetPixel(Pixel.X, Pixel.Y)
Status.Text = Couleur.ToString
Next
Next

pleaseeeee help meeeeeeeeeeee

4 réponses

frank150 Messages postés 34 Date d'inscription lundi 6 janvier 2003 Statut Membre Dernière intervention 29 mars 2008
24 janv. 2006 à 09:30
Ya quelque truc qui me pertube un peu avec ton code:

- Ya des variables pas déclarés
- Ya des variables qui servent a rien
- Sa retourne que la couleur actuellement lu par GetPixel()

Je t'ai donc fait une fonction qui lit un bitmap et qui retourne tous les couleurs:

Private Function OpenBitmap(ByVal Filename As String) As System.Drawing.Color()

Dim bBitmap As New Bitmap(Filename)
Dim bColor As System.Drawing.Color(), iX As Integer, iY As Integer, iColorIdx As Integer

Array.Resize(bColor, (bBitmap.Height) * (bBitmap.Width))

For iY = 0 To bBitmap.Height - 1
For iX = 0 To bBitmap.Width - 1
bColor(iColorIdx) = bBitmap.GetPixel(iX, iY)
iColorIdx += 1
Next
Next

Return bColor

End Function

Frank150
3
frank150 Messages postés 34 Date d'inscription lundi 6 janvier 2003 Statut Membre Dernière intervention 29 mars 2008
25 janv. 2006 à 14:08
La sa te le retourne sous forme ARGB (Sytem.Drawing.Color)
Pour retourner sous forme Integer c'est : System.Drawing.Color.ToArgb

Exemple en Integer (Retourne un Integer):
bColor(iColorIdx) = bBitmap.GetPixel(iX, iY).ToArgb

Exemple en Hexadécimale (Retourne un String):
bColor(iColorIdx) = Hex(bBitmap.GetPixel(iX, iY).ToArgb)

N'oublie pas de changer le retour de la fonction en Integer() ou en String() selon le cas ainsi que la variable bColor

Frank150
3
cs_gayelle Messages postés 4 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006
24 janv. 2006 à 11:36
ok merci beaucoup, je capte qu'en faite c'etais ma variable Couleur qui etais pas bonne (ps: y'avais pas tout mon code, d'ou certaine variables que tu pensé indéclaré!;) )

j'ai juste modifier une chose a ton code:
Array.Resize(bColor, (bBitmap.Height) * (bBitmap.Width))
ca il en veut pas, donc j'ai fait comme ca:
redim bColor((bBitmap.Height)*(bBitmap.Width))

mais pour le coup j'ai une autre question.... y'a un moyen de récupéré ces valeurs sous forme héxa? et si c'est pas possible(simplement du moins), c'est sous quel forme qu'il me stocke les couleurs?

Merci beaucoup dejà!!!!
0
cs_gayelle Messages postés 4 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 10:41
Franchement merci, c'est impeccable!!!
Une fois que j'aurais fini mon prog, je vous enverai tout ca!!!
Encore merci bicoupppppppppppppp
0
Rejoignez-nous