Bonjour.
Ben je crois que tout est dit dans le titre, j'ai une PictureBox avec une image dedans, et je cherche à connaitre la couleur d'un pixel connaissant ses coordonnées.
Merci d'avance ;)
Version imprimable
Bonjour.
Ben je crois que tout est dit dans le titre, j'ai une PictureBox avec une image dedans, et je cherche à connaitre la couleur d'un pixel connaissant ses coordonnées.
Merci d'avance ;)
essaye ceci
tu obtiendras un longCode:MsgBox picture1.Point(X, Y)
si tu veux en tirer les composantes R,G,B, tu dis ...;)
:oops: J'avais pas vu cette méthode :oops:
Mais j'ai un autre problème.
Je m'explique : j'ai une carte de mon département avec ses communes, chaque commune est d'une couleur différente, la carte est chargée dans la picturebox, j'ai un tableau de conversion car je dois attribuer une nouvelle couleur a chaque commune. je parcour donc toute l'image, récupère la couleur avec Point, et attribue la nouvelle couleur avec PSet. Mais ma carte est trop grande pour etre affichée a l'écran (2858 * 2579), je voudrait donc l'envoyer dans une ImageBox dont la propriété Stretch est a True, mais lorsque je fait
ouCode:Image1.Picture=Picture1.Picture
l'ImageBox m'affiche la carte de départ :( alors que la PictureBox contient bien l'image modifiée (j'en voi une partie)Code:Image1.Picture=Picture1.Image
Comment je dois faire, car la j'ai essayé plein de truc sans résultats :cry:
De plus je voudrait après enregistrer la nouvelle carte dans un fichier bitmap mais ca doit se faire avec SavePicture.
:mouarf: :lol: :DCode:Comment je dois faire, car la j'ai essayé plein de truc sans résultats
Ah! Ah!....:D
Alors : quelqu'un (qui se reconnaîtra peut-être ici...;) avait une fois poussé un MOUARF.....
Mais toi, tu ne vas pas le pousser... et faire précéder tes opérations par un :
Picture1.picture = picture1.Image,
ce qui donne, dans l'ordre :
et tu me dis...Code:
1
2
3 Picture1.picture = picture1.Image Doevents Image1.Picture=Picture1.Picture
Si celà ne va pas : envoie-moi un zip et je te fais !
EDIT : et ainsi ton savepicture marchera lui aussi.....
T'en fais pas ;)
ca marche pas :cry:
Il me remet carément l'image de départ dans la picture, et donc toujours pareil pour l'ImageBox.
Voila mon programme:
Pour l'utiliser il faut cliquer sur "Ouvrir fichier Xls"
Puis sur "Colorier carte"
Bon je n'ai pas excel moderne pour essayer mais j'ai vu où était ton problème
essaye celà et n'oublie pas d'ajouter ce qui est en rouge et qui est nécessaire
lance et tu verras une ligne s'afficher tant rur ta PictureBox que sur ton image...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Sub ColorMap_Click() Picture1.AutoRedraw = True Dim bX As Single Dim bY As Single Dim Coul As Long 'désactive les boutons CmdOpenBmp.Enabled = False CmdOpenXls.Enabled = False ColorMap.Enabled = False Picture1.Picture = LoadPicture(App.Path & "\Creuse.bmp") 'je dessine quelque chose========================== Picture1.DrawWidth = 3 Picture1.ForeColor = 0 Picture1.Line (0, 0)-(500, 500) '==================================================== Picture1.Picture = Picture1.Image DoEvents Image1.Picture = Picture1.Picture 'active les boutons CmdOpenBmp.Enabled = True CmdOpenXls.Enabled = True ColorMap.Enabled = True End Sub
C'est tout ...
Mon problème est que je voulais utiliser une picturebox pour aller plus vite, car j'ai fait un control pour les Bitmap mais ca rame dur (au moins une heure pour traiter toute l'image) or quand je met Picture1.autoredraw a true, ca rame autant :cry:
Celà me parait être un tout autre problème que celui de ton sujet...Citation:
Mon problème est que je voulais utiliser une picturebox pour aller plus vite, car j'ai fait un control pour les Bitmap mais ca rame dur (au moins une heure pour traiter toute l'image) or quand je met Picture1.autoredraw a true, ca rame autant
Le chargement d'une pictureBox nécessite un temps proportionnel à celui des pixels de l'image chargée...
Ton problème était la mise à jour de ton contrôle image. Est-il oui ou non résolu ?
Pour le reste : le temps pendant lequel "ça rame" : je pense qu'il est moins le résultat du chargement de ta pictureBox que le traitement que tu y fais ensuite pixel par pixel....(il y a d'autres façons de procéder que celle-là...)
Alors :
1) je souhaiterais que tu répondes par oui ou par non à "le probvlème de la mise à jour de Image1 est-il réglé ?"
2) que tu ouvres un sujet distinct (car il n'a plus rien à voir avec le 1er) concernant la façon de modifier beaucoup plus rapidement que pixel par pixel, la couleur des pixels d'une zone délimitée.
Oui, il l'est et je t'en remercie Grandement :D , quand à l'autre problème je l'ai résolu en mettant la propriété visible de la feuille à False, ainsi le temps et beaucoup plus court ;)
Encore une fois un grand merci a toi :ccool:
Tu peux encore augmenter cette vitesse ...
Relis entièrement ma réponse...