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

Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012
- - Dernière réponse : irvine31
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
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 

4 réponses

Meilleure réponse
Messages postés
14489
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juin 2019
131
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 137 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
Modérateur
Dernière intervention
11 avril 2018
209
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 137 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
Statut
Membre
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
Statut
Membre
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