[...]PixelGetColor & Speed

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

[...]PixelGetColor & Speed

#1

Message par DidUngar »

Bonjour,
J'ai tenter d'optimiser une fonction de comparaison d'image
L'image a trouver est la poubelle windows ( donc placer en haut de l'écrant )
Sur l'ancienne version je met une moyenne ( sur 10 test ) de 23190 ( seconde ? ) pour la trouver
Sur la nouvelle version je met 24 480 pour la trouver.

Pourtant la fonction PixelGetColor est réputer comme étant lente, et je stoque ses résultats dans un tableaux 2 dimentions pour accélérée le résultat.
Auriez-vous une explication ?

version Beta :
► Afficher le texte
Version stable :
► Afficher le texte

Et bien sur l'outils de test :
► Afficher le texte
Le but final du script :
Détécter la barre verte de chargement de firefox pour prendre une capture d'érant une fois le DL d'une page web terminée
Envoyer le resultat via FTP sur un linux qui serai cronner pour convertir l'image en bmp via perl et ensuite la redimentionner en php pour en faire un ascreen.
Oui la solution est longue est imprafaite mais sinon je doit payer 1€ Les 1000 ascreen.
Alors que si je peut l'optimiser je pourrai faire les ascreen des mes sites automatiquement et plus réguliérement.
( soit 400 ascreen en moyenne par mois )

Je suis prenneur de vos idées.
Merci d'avance.
Modifié en dernier par Tlem le lun. 29 juin 2009 02:26, modifié 1 fois.
Raison : Ajout balise spoiler
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#2

Message par Iste »

une idée serait de pas passer par des fonction graphique...
L'udf FF.au3 doit bien pouvoir faire ce que tu cherche

Les fonction graphiques sont a utiliser en dernier recoure, meme si tout le monde semble se jeter sur ca en 1er

Du moins pour le "Détécter la barre verte de chargement de firefox"
car je vois pas de quoi il sagit ^^' et je comprend pas non plus la démarche d'apres :/ encore moins cette histoire d'argent :\
Enfin, ca c'est pas mon probleme ^^
Signez ici
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#3

Message par DidUngar »

La barre verte est la barre de chargement de firefox.
donc si je la trouve je peut savoir ou en est le chargement.

Pour la partie transformation et balade de l'image c'est sur que hors de mon réseaux ca doit paraître bizard.
Pour les sous en faites :
http://www.shotbot.fr/ propose des ascreens gratuit mais en petite quantitée.
Ensuite il les vends se qui est normal.
Ayant un gros site donc beaucoup de ascreens a faire ( http://www.monautosurf.com ) je désire devenir indépendant sur la génération d'ascreen.

NB : ascreen : Image de type png de taille réduite , cette image est une capture d'écrant d'un site.
On l'utilise surtout pour le référencement.


J'ai trouver la librairie que tu me conseil. ( http://www.autoitscript.fr/forum/viewto ... +udf#p9139 )
Mais aimant apprendre par moi même a faire les choses j'utilise déjà la mienne.
► Afficher le texte
On peut remarquer que : firefox_loading() ne tient pas compte de la position de la barre de chargement.
D'ou mon travail sur la detection d'image.
Modifié en dernier par Tlem le lun. 29 juin 2009 02:53, modifié 1 fois.
Raison : Ajout balise spoiler
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#4

Message par Iste »

ha dac je comprend, tu veux faire un truc que les autres font payer, je comprend ^^

Bon alors, comme t'as l'air de vraiment faire comme ca, du moins pour essayer, l'idéal serait de prendre les coordonnées de la fenêtre de chargement avant de lancer la recherche !
comme ca ca l'imite, ou qu'elle soit

Mais maintenant j'en suis encore plus persuadé, c'est pas la bonne solution :p

Edit : dis en fait, et si tu inetget() la page ? pas bon ?
Signez ici
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#5

Message par DidUngar »

Je suis tous as fait d'accord sur le faite que rétrécir la zone de recherche va nettement accelérée.
c'est d'ailleur pour cela que j'ai placer les arguments : ,$x_ini,$y_ini,$x_end,$y_end

Mais lors des test je préfére prendre de grande zone pour mieu faire les stats.
Et c'est la que j'ai remarquer ce phénoméne bizard getPix qui même en C est réputer extremement lent est plus rapide qu'une mise en ram des informations.

C'est pour comprendre se phénoméne que je suis venu poster.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#6

Message par Iste »

ha, bon ben dans ce cas je peux pas t'aider désolé ^^
mais si un jour tu cherche a faire un script pour le faire fonctionner, et non pour l'observer tel un rat dans un labyrinthe, je serais la :D
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#7

Message par Tlem »

@DidUngar

Merci de mettre vos balise de code dans des balises spoiler lorsque votre code dépasse un dizaine de ligne.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#8

Message par DidUngar »

Iste a écrit :ha, bon ben dans ce cas je peux pas t'aider désolé ^^
mais si un jour tu cherche a faire un script pour le faire fonctionner, et non pour l'observer tel un rat dans un labyrinthe, je serais la :D
Merci je retient l'offre.
Tlem a écrit :@DidUngar

Merci de mettre vos balise de code dans des balises spoiler lorsque votre code dépasse un dizaine de ligne.
D'accord, je rajouterai la balise.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#9

Message par orax »

Bonsoir, alors en fait, ce que j'ai fait ce n'est pas une détection de l'image, mais juste d'un pixel. Je ne sais pas si ça pourra convenir.
Pour tester le script vous devez : lancer le script ; activer la fenêtre de Firefox et appuyer plusieurs fois sur F5 pour garder afficher la barre verte (ou blanche). Le script boucle tant que la couleur à l'emplacement de la barre verte ne sera pas grise.
Il est possible que 280 dans l'expression "$xBarreVerte=$a[2]-280" doit être modifié pour que ça marche !
Chez moi ça marche en fenêtre agrandit et normale. Voilà voila...
Je ne l'ai pas fait mais si vraiment vous voulez savoir à quel endroit se trouve la barre verte, il est possible de déterminer automatiquement la valeur 280 (dans "$xBarreVerte=$a[2]-280") avec une détection d'un pixel particulier dans la grande barre grise (la barre de statut).

Code : Tout sélectionner

Opt("PixelCoordMode",0)

$hwnd=ControlGetHandle("[CLASS:MozillaUIWindowClass]","","MozillaWindowClass1")
$a=ControlGetPos("[CLASS:MozillaUIWindowClass]","","MozillaWindowClass1")
$xBarreVerte=$a[2]-280 ; IMPORTANT : à modifier selon votre Firefox
$yBarreVerte=$a[3]-10
Sleep(2000)
;~ ClipPut(PixelGetColor($xBarreVerte,$yBarreVerte,$hwnd)) ; 0x00DFE0E5 = 14672101 = couleur grise
While PixelGetColor($xBarreVerte,$yBarreVerte,$hwnd) <> 14672101 ; 
    Sleep(100)
WEnd
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#10

Message par DidUngar »

Ce qui m'interesse serai de ne plus avoir "à modifier selon votre Firefox".
Mon détecteur d'image fonctionne bien.

Mais je ne comprend pas le changement de vitesse qui s'oppére lorsque j'utilise un cache.
( J'admet que lorsque je met juste la ligne du bas du navigateur je met moin de 1 seconde a trouver la barre de chargement ,
mon probléme est donc purement un probléme de compréhention )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#11

Message par orax »

DidUngar a écrit :Ce qui m'interesse serai de ne plus avoir "à modifier selon votre Firefox".
Il n'y a qu'une ligne à rajouter :
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
DidUngar
Niveau 3
Niveau 3
Messages : 40
Enregistré le : mar. 14 août 2007 23:31
Status : Hors ligne

Re: [...]PixelGetColor & Speed

#12

Message par DidUngar »

Merci mais,
Tu demande a 2 reprise a l'utilisateur d'intervenir.
Et tu ne prend pas en compte les différent templatte.

De plus trouver la barre verte j'y arrive je demande juste a comprendre pourquoi mon script est plus lent avec un cache que sans.

Je ne vous demande pas de résoudre mon probléme final mais juste de m'aider a comprendre le ralentissement du script.
Répondre