[Résolu] Problène de code et de condition

Vous voulez de l'aide ? Postez ici :)
Post Reply
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

[Résolu] Problène de code et de condition

Post by Fredy123 »

Salut !

Ça fait un baye !

J'ai un problème qui commence à me chicoter, j'explique :

Je commence par prendre un screen shot avec : MonImage = Image.takeScreenshot();
Je prend trois couleurs de pixel à trois endroits différents dans le screen avec ceci : ImgPixel1 = MonImage.pixel (10,20)
Je fais une pause de 8 secondes, puis je reprend un autre screen shot mais cette fois avec une variable différente. Finalement je reprend trois couleur de pixel au même endroit que les autres.

Ça me donne comme résultat quelque chose comme ça : Color [red:200][green:100][blue:255][alpha:255] x6.

Le problème :

Lorsque je souhaite comparer les couleurs de pixel prisent, j'en suis tout simplement incapable...

Exemple de condition de variable :

Si : ImgPixel1 = ImgPixel1b, aller à : Continuer. Sinon : ne rien faire *** J'ai testé : Égale, contient et différent de***
Le script ne bug pas, mais la condition est toujours fausse même quand elle devrait être vraie....

J'avais pensé à coder cette condition en JavaScript mais je ne suis pas un expert.
J'espère que tu pourra m'aider comme d'habitude ! :D

Bonne journée.
Last edited by Fredy123 on 07 Feb 2013, 18:35, edited 1 time in total.
Michel
Posts: 20
Joined: 18 Oct 2012, 10:32

Re: Problène de code et de condition

Post by Michel »

je me permets de répondre avec un script :-)

exécute ce script avec actexec, suivant que tu bouge le contenu de l'écran ou pas pendant les 5 secondes d'attente, tu auras l'un ou l'autre des message. Bien sûr, tu peux affiner le test en rajoutant ou supprimant des pixels.

Voilà, en espérant que ça répond à ton besoin...

Code: Select all

function test1() {
    var img1 = Image.takeScreenshot();
    var img1p1 = img1.pixel (10,10);
    var img1p2 = img1.pixel (100,100);
    var img1p3 = img1.pixel (300,300);
    
    Execution.pause(5000);

    var img2 = Image.takeScreenshot();
    var img2p1 = img2.pixel (10,10);
    var img2p2 = img2.pixel (100,100);
    var img2p3 = img2.pixel (300,300);

    // est-ce que tous les pixels sont égaux ?
    if (img1p1.equals(img2p1) && (img1p2.equals(img2p2)) && (img1p3.equals(img2p3))) {
	Stdio.print("Tout est egal !");
    } else {
	Stdio.print("Tous les pixels ne sont pas egaux (certains le sont plus que d'autres...)");
    }							     
}

test1();
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Problène de code et de condition

Post by Jmgr »

Le plus simple reste de le faire avec un bout de code, mais en fait il faut que j'ajoute le choix du type de la valeur à comparer à l'action Condition de Variable, un peu comme dans l'action Variable.
"My software never has bugs. It just develops random features."
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Re: Problène de code et de condition

Post by Fredy123 »

En faite ça répond moyennement à mes besoins.

Pour coder les conditions je n'ai aucun problème. C'est plus du côté de : si la condition est vraie, va là ! à la ligne X. Je n'ai aucune idée de comment faire pour dire va à cette ligne....

Sinon pour ton script je ne peux pas vraiment le tester car je ne sais même pas comment exécuter Actexec. ^^

Merci pour l'aide !

J'espère qu'il y aura une Maj permettant de comparer des pixels !

Bonne journée.
Michel
Posts: 20
Joined: 18 Oct 2012, 10:32

Re: Problène de code et de condition

Post by Michel »

Si j'ai bien compris ton besoin, voici une version "intermédiaire" entre tout en code et tout dans Actionaz, en attendant que ce soit possible sans code...

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.4.2" scriptVersion="1.0.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionEndProcedure" version="1.0.0"/>
        <action name="ActionVariable" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
        <action name="ActionVariableCondition" version="1.0.0"/>
        <action name="ActionConsole" version="1.0.0"/>
        <action name="ActionPause" version="1.0.0"/>
        <action name="ActionBeginProcedure" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionCode" comment="la "librairie"">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">var img1p1 ;
var img1p2 ;
var img1p3 ;
var img2p1 ;
var img2p2 ;
var img2p3 ;

function takeimg1() {
    var img1 = Image.takeScreenshot();
    img1p1 = img1.pixel (10,10);
    img1p2 = img1.pixel (100,100);
    img1p3 = img1.pixel (300,300);
    
}
 
function takeimg2() {
    var img2 = Image.takeScreenshot();
    img2p1 = img2.pixel (10,10);
    img2p2 = img2.pixel (100,100);
    img2p3 = img2.pixel (300,300);
}

function testImg1Img2() {
    // est-ce que tous les pixels sont égaux ?
    if (img1p1.equals(img2p1) && (img1p2.equals(img2p2)) && (img1p3.equals(img2p3)))		return "VRAI";
   else 
	return "FAUX";
}


</subParameter>
            </parameter>
        </action>
        <action name="ActionBeginProcedure" comment="C'est ok">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="0">Tout va bien</subParameter>
            </parameter>
        </action>
        <action name="ActionConsole">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="output">
                <subParameter name="value" code="0">information</subParameter>
            </parameter>
            <parameter name="text">
                <subParameter name="value" code="0">Les deux images sont les mêmes!</subParameter>
            </parameter>
        </action>
        <action name="ActionEndProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionBeginProcedure" comment="Problème">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="0">Problème</subParameter>
            </parameter>
        </action>
        <action name="ActionConsole">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="output">
                <subParameter name="value" code="0">warning</subParameter>
            </parameter>
            <parameter name="text">
                <subParameter name="value" code="0">Différence entre les deux images</subParameter>
            </parameter>
        </action>
        <action name="ActionEndProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionPause">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="duration">
                <subParameter name="value" code="0">3</subParameter>
            </parameter>
            <parameter name="unit">
                <subParameter name="value" code="0">seconds</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Premier screenshot">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">takeimg1();</subParameter>
            </parameter>
        </action>
        <action name="ActionPause">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="duration">
                <subParameter name="value" code="0">3</subParameter>
            </parameter>
            <parameter name="unit">
                <subParameter name="value" code="0">seconds</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Second  screenshot">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">takeimg2();</subParameter>
            </parameter>
        </action>
        <action name="ActionVariable">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <parameter name="colorValue">
                <subParameter name="value" code="0">::</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">test</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">string</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="1">testImg1Img2()</subParameter>
            </parameter>
            <parameter name="positionValue">
                <subParameter name="value" code="0">:</subParameter>
            </parameter>
        </action>
        <action name="ActionVariableCondition">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="ifEqual">
                <subParameter name="line" code="0">Tout va bien</subParameter>
                <subParameter name="action" code="0">call_procedure</subParameter>
            </parameter>
            <parameter name="comparison">
                <subParameter name="value" code="0">equal</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">test</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">VRAI</subParameter>
            </parameter>
            <parameter name="ifDifferent">
                <subParameter name="line" code="0">Problème</subParameter>
                <subParameter name="action" code="0">call_procedure</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Re: Problène de code et de condition

Post by Fredy123 »

Salut !

Merci encore pour l'aide !

Cependant, peu importe ce que je fais le résultat reste le même : Les deux images son images sont les mêmes !

J'ai testé en changeant complètement de fenêtre et tout et toujours la même chose. ^^

Joyeuse fête ! :)

EDIT : Laisse faire.... ça fonctionne ! Merci beaucoup :) Bonne journée !
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Problène de code et de condition

Post by Jmgr »

J'ai corrigé le bug qui empêchait la comparaison de variables autres que des chaînes de caractères.
Je termine de tester ça demain et je publie la version 3.5.1.
"My software never has bugs. It just develops random features."
Post Reply