IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Obtenir la couleur d'un pixel d'une PictureBox


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut Obtenir la couleur d'un pixel d'une PictureBox
    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
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox picture1.Point(X, Y)
    tu obtiendras un long
    si tu veux en tirer les composantes R,G,B, tu dis ...

  3. #3
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    J'avais pas vu cette méthode
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Picture=Picture1.Picture
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Picture=Picture1.Image
    l'ImageBox m'affiche la carte de départ alors que la PictureBox contient bien l'image modifiée (j'en voi une partie)

    Comment je dois faire, car la j'ai essayé plein de truc sans résultats

    De plus je voudrait après enregistrer la nouvelle carte dans un fichier bitmap mais ca doit se faire avec SavePicture.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comment je dois faire, car la j'ai essayé plein de truc sans résultats


    Ah! Ah!....

    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Picture1.picture = picture1.Image
    Doevents
    Image1.Picture=Picture1.Picture
    et tu me dis...
    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

  5. #5
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    ca marche pas
    Il me remet carément l'image de départ dans la picture, et donc toujours pareil pour l'ImageBox.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  6. #6
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Voila mon programme:
    Pour l'utiliser il faut cliquer sur "Ouvrir fichier Xls"
    Puis sur "Colorier carte"
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    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

    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
    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
    lance et tu verras une ligne s'afficher tant rur ta PictureBox que sur ton image...
    C'est tout ...

  8. #8
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    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
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    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
    Celà me parait être un tout autre problème que celui de ton sujet...
    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.

  10. #10
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Oui, il l'est et je t'en remercie Grandement , 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
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu peux encore augmenter cette vitesse ...
    Relis entièrement ma réponse...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. retrouver la couleur d'un pixel dans une image
    Par Dennis Nedry dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/12/2007, 14h00
  2. Valeur de la couleur d'un pixel d'une image
    Par PiPo123 dans le forum Windows
    Réponses: 4
    Dernier message: 10/03/2007, 21h42
  3. Réponses: 14
    Dernier message: 04/01/2006, 14h40
  4. Réponses: 1
    Dernier message: 26/03/2005, 12h31
  5. Obtenir la couleur d'un pixel
    Par GLDavid dans le forum OpenGL
    Réponses: 2
    Dernier message: 09/03/2004, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo