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.NET Discussion :

Non fonctionnement de la fonction GetPixel lors de la publication d'un projet


Sujet :

VB.NET

  1. #21
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Discret68 Voir le message
    J'ai testé sur les 2 PC avec seven sur lesquels ça ne fonctionnait pas et maintenant, ça fonctionne sur les 2.
    Ca, c'est une bonne nouvelle !


    Citation Envoyé par Discret68 Voir le message
    Concernant la valeur de hdc, je confirme que la valeur varie constamment en fonction de la position du curseur. J'ai fait l'essai sur 2 PC (seven et win10) et valeur varie d'un pixel à l'autre.
    Peux-tu nous fournir le code ?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  2. #22
    Nouveau membre du Club
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Juillet 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    Voici :

    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
    Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As IntPtr, ByVal x As Int32, ByVal y As Int32) As Int32
     
    Dim rgb As Int32
    Dim hdc As IntPtr
    Using g As Graphics = Graphics.FromHwnd(PictureBox2.Handle)
                hdc = g.GetHdc
                VAL_HDC = hdc.ToInt64()
                Label53.Text = VAL_HDC
                rgb = GetPixel(hdc, COORD_X, COORD_Y)
                Label22.Text = Hex(rgb)
                PRed = rgb And &HFF
                PGreen = (rgb And &HFF00) / 256
                PBlue = (rgb And &HFF0000) / 65536
                NivGray = (77 * PBlue + 151 * PGreen + 28 * PRed) / 256
                g.ReleaseHdc(hdc)
     End Using
    Depuis le changement du hdc en IntPtr à la place de Int32, il a été nécessaire de convertir la valeur résultante en Int64 pour pouvoir afficher sa valeur dans un label.

  3. #23
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Ce n'est pas forcément étonnant. A chaque appel de GetPixel, tu demandes un nouveau HDC que tu libères ensuite. Finalement, ça ne me choque pas plus que ça après lecture du code
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #24
    Nouveau membre du Club
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Juillet 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Ce n'est pas forcément étonnant. A chaque appel de GetPixel, tu demandes un nouveau HDC que tu libères ensuite. Finalement, ça ne me choque pas plus que ça après lecture du code
    Cela signifie t'il que je devrait placer la ligne hdc = g.GetHdc en amont de la procédure qui scrute les pixels de l'image lorsque je la survole avec la souris ?

  5. #25
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Ce n'est pas une obligation. Personnellement, je le ferai car la fonction GetPixel est très souvent appelée.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  6. #26
    Nouveau membre du Club
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Juillet 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2016
    Messages : 63
    Points : 32
    Points
    32
    Par défaut
    J'ai effectué les rectificatifs concernant la différence de mode gestion des coordonnées entre le pointeur de souris et la fonction GetPixel, en prenant en compte le zoom variable sur l'image ainsi que le positionnement du Form sur l'écran.

    J'ai testé le programme sur 2 PC Win10, 2PC Seven et 1 PC XP, les 4 premiers en 64 bits et le XP en 32 bits. Le programme fonctionne sans problème sur les 5 PC.

    Je considère que la problématique est résolue et que la discussion peut être soldée.

    Merci aux différents intervenants qui sont intervenus dans cette discussion et qui m'ont permis de régler mon problème.

    Jean-Pierre

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Débutant] Curseur perso absent lors de la publication d'un projet
    Par Discret68 dans le forum VB.NET
    Réponses: 28
    Dernier message: 07/04/2017, 20h42
  2. Erreur lors de la publication d'un projet web
    Par soso78 dans le forum Débuter
    Réponses: 1
    Dernier message: 31/07/2009, 13h56
  3. [PHP-JS] Formulaire non trouvé dans une fonction
    Par philippe30 dans le forum Langage
    Réponses: 4
    Dernier message: 11/12/2005, 21h53
  4. [CSS] non-fonctionnement de background-image
    Par Henri dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 16/09/2005, 20h06
  5. Critère non reconnu dans la fonction DCount
    Par Ps4 dans le forum Access
    Réponses: 7
    Dernier message: 20/06/2005, 09h02

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