[.net 2003]

Résolu
Signaler
Messages postés
4
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
30 janvier 2006
-
Messages postés
4
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
30 janvier 2006
-
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

Messages postés
34
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2008

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
34
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2008

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
4
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
30 janvier 2006

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à!!!!
Messages postés
4
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
30 janvier 2006

Franchement merci, c'est impeccable!!!
Une fois que j'aurais fini mon prog, je vous enverai tout ca!!!
Encore merci bicoupppppppppppppp