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

irvine31 23 Messages postés samedi 10 avril 2010Date d'inscription 28 juin 2012 Dernière intervention - 27 juin 2012 à 21:24 - Dernière réponse : irvine31 23 Messages postés samedi 10 avril 2010Date d'inscription 28 juin 2012 Dernière intervention
- 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
NHenry 14211 Messages postés vendredi 14 mars 2003Date d'inscription 24 juin 2018 Dernière intervention - 27 juin 2012 à 23:04
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

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 28 juin 2012 à 10:11
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de ucfoutu
irvine31 23 Messages postés samedi 10 avril 2010Date d'inscription 28 juin 2012 Dernière intervention - 28 juin 2012 à 09:46
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
irvine31 23 Messages postés samedi 10 avril 2010Date d'inscription 28 juin 2012 Dernière intervention - 28 juin 2012 à 10:57
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.