[R] Comparaison de pixels

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
galloche
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 25 sept. 2008 11:24
Status : Hors ligne

[R] Comparaison de pixels

#1

Message par galloche »

bonjour,

je souhaite comparer deux pixels. l'un venant d'une fenêtre l'autre venant d'une image pré-enregistrée. Ceci dans le but de définir si la fenêtre ouverte est bien la bonne ou non.

Voici mon code :

Code : Tout sélectionner

run ("appli.exe")

WinWaitActive("appli")

;$coord = PixelGetColor (40,585)

;$coord1 = PixelGetColor (40,585,"c:\Documents and settings\admin\bureau\autoit\script\appli2.jpg")

MsgBox (1,"titre", $coord & @CRLF & @CRLF & $coord1)

If $coord = $coord1 then
    MsgBox (1,"titre", "test OK")
else
    MsgBox (1,"titre","Test KO")
EndIf
 
Le problème est que les deux images comparées sont différentes. Mais le test me renvoie le meme code couleur pour les deux pixels : 8487297 et test OK

Or j'ai fait exprès de mettre une image différente de la fenêtre ouverte pour vérifier si le test est bon.

pourriez vous m'aider dans mon problème???

Merci. Cordialement.
Modifié en dernier par Tlem le jeu. 25 sept. 2008 23:13, modifié 2 fois.
Raison : Maj des balises
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Comparaison de pixels

#2

Message par jbnh »

Code : Tout sélectionner

$coord1 = PixelGetColor (40,585,"c:\Documents and settings\admin\bureau\autoit\script\appli2.jpg")
 
n'est pas correct.

Code : Tout sélectionner

PixelGetColor ( x , y [, hwnd] )
Hwnd signifie le nom de la fenêtre ou détecter le pixel.

Il faut donc ouvrir l'image avec un logiciel puis prendre le pixel.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [..] Comparaison de pixels

#3

Message par tolf »

jbnh a écrit :Il faut donc ouvrir l'image avec un logiciel puis prendre le pixel.
Il est possible de connaître la couleur d'un pixel d'une image directement avec AutoIt en utilisant GDI+ :

Code : Tout sélectionner

#Include <GDIPlus.au3>

_GDIPlus_Startup()
$h_image = _GDIPlus_ImageLoadFromFile("c:\Documents and settings\admin\bureau\autoit\script\appli2.jpg")
$color = GDIPlus_BitmapGetPixel($h_image, 40, 585)
_GDIPlus_ImageDispose($h_image)
_GDIPlus_Shutdown()

Func GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)
    Local $tArgb, $pArgb, $aRet
    $tArgb = DllStructCreate("dword Argb")
    $pArgb = DllStructGetPtr($tArgb)
    $aRet = DllCall($ghGDIPDll, "int", "GdipBitmapGetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "ptr", $pArgb)
    Return "0x" & Hex(DllStructGetData($tArgb, "Argb"))
EndFunc   ;==>GDIPlus_BitmapGetPixel
Pour plus d'informations, vous pouvez regarder ici
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Comparaison de pixels

#4

Message par jbnh »

Faudra que je m'y mette au GDIplus, ca a l'air interessant :)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
galloche
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 25 sept. 2008 11:24
Status : Hors ligne

Re: [..] Comparaison de pixels

#5

Message par galloche »

Oki cest bon pour moi.
merci encore :)
Répondre