Lister pixels couleur spécifique : GetPixel [Résolu]

Messages postés
23
Date d'inscription
samedi 10 avril 2010
Dernière intervention
28 juin 2012
- - Dernière réponse : irvine31
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Dernière intervention
28 juin 2012
- 28 juin 2012 à 10:57
Bonjour,
J'ai découvert une API qui peut m’être très utile : GetPixel.
J'ai fait pas mal de recherche et j'en suis venu à ceci :

Public Class Form1
    Public Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal x As Integer, ByVal y As Integer) As IntPtr
    Public Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        For Each Personnage In Process.GetProcessesByName("Procecus")
            Dim cacao As IntPtr = GetWindowDC(Personnage.MainWindowHandle)
            TextBox1.Text = GetPixel(cacao, Cursor.Position.X, Cursor.Position.Y).ToString
        Next
    End Sub
End Class


Tout fonctionne à merveille !
Mais j'aimerais lister toute les positions où les pixels ont une couleur spécifique.
Concrètement, j'aimerais avoir les positions (X et Y) dans la fenêtre où les pixels ont cette valeurs : "15527405".

Voici ma question :
Est-ce que je suis obligé de tester la valeur de chacun des pixels un par un pour effectuer la liste ou existe-il une solution plus simple ?
Par exemple si il existait une API ("FindPixel" pour handle spécifique) se serait super !
Le problème c'est que la fonction va être répété extrêmement rapidement donc j'ai peur que cela prenne beaucoup de ressource ...
Donnez-moi votre point de vue s'il vous plait.
Bonne soirée à tous !
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 décembre 2018
3
Merci
Bonjour,

Non, je ne pense pas que ça existe, il faudra que tu fasse la boucle pour contrôler tout les pixels.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site

Dire « Merci » 3

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

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

Commenter la réponse de NHenry
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
Bonjour,
mais si quelqu'un d'autre à une astuce je suis preneur

Il n'en existe pas. Je plussoie ce que t'en a dit NHenry.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Dire « Merci » 3

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

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

Commenter la réponse de ucfoutu
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Dernière intervention
28 juin 2012
0
Merci
Merci pour ta réponse, je vais faire ceci mais si quelqu'un d'autre à une astuce je suis preneur
Commenter la réponse de irvine31
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Dernière intervention
28 juin 2012
0
Merci
Bon, je vais faire comme ça
Sujet résolu, merci à vous deux !
Commenter la réponse de irvine31

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.