Couleur de pixel : idée.

N'hésitez pas à poster si vous avez une idée d'amélioration du programme
Post Reply
extasie
Posts: 37
Joined: 23 Jan 2009, 19:10

Couleur de pixel : idée.

Post by extasie »

J'utilise énormément l'action couleur de pixel car elle permet de vérifier quasiment tout le temps si le script s'effectue bien, comme j'ai beaucoup de facteur qui rentre en compte dans mes scripts, j'ai besoin de vérifier si mon action c'est bien déroulé.

J'ai donc quelques requêtes la concernant qui pourrait en intéressé plus d'un.

Ma première idée serait de rajouter une comparaison, à l'heure actuelle nous avons égal, plus sombre, plus clair. Mais parfois je ne sais pas si mon pixel va être plus sombre ou plus clair.
La nouvelle comparaison serait donc "différent de".

Ma deuxième idée est de rajouter dans le "si vrai" l'option "attendre" qui n'est en ce moment, que dans la case "si faux". (je n'ai d'ailleurs jamais compris pourquoi)
De plus pour cet option, je ne sais pas exactement ce quelle fait, ce que je voudrais moi, c'est que "attendre" vérifie en permanence la couleur du pixel jusqu'à ce que la comparaison soit vérifié.
Pour l'instant ma solution de remplacement c'est mettre une action "aller à la ligne" juste en dessous de mon action "couleur de pixel".
Celui qui veut faire quelque chose trouve une solution, celui qui ne veut rien faire trouve une excuse.
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Couleur de pixel : idée.

Post by Jmgr »

Ma première idée serait de rajouter une comparaison, à l'heure actuelle nous avons égal, plus sombre, plus clair. Mais parfois je ne sais pas si mon pixel va être plus sombre ou plus clair.
La nouvelle comparaison serait donc "différent de".
Pourquoi pas. Mais de toute façon si ce n'est pas égal c'est que c'est différent, il suffit d'inverser "Si vrai" et "Si faux".
Ma deuxième idée est de rajouter dans le "si vrai" l'option "attendre" qui n'est en ce moment, que dans la case "si faux". (je n'ai d'ailleurs jamais compris pourquoi)
De plus pour cet option, je ne sais pas exactement ce quelle fait, ce que je voudrais moi, c'est que "attendre" vérifie en permanence la couleur du pixel jusqu'à ce que la comparaison soit vérifié.
Pour l'instant ma solution de remplacement c'est mettre une action "aller à la ligne" juste en dessous de mon action "couleur de pixel".
L'idée de "Attendre" c'est de vérifier continuellement si le pixel est de la couleur voulue. C'est pour ça qu'il me semblait plus logique de ne le permettre que sur le "si faux". Mais ta remarque est juste.
"My software never has bugs. It just develops random features."
bilou
Posts: 3
Joined: 17 Oct 2011, 15:52

Re: Couleur de pixel : idée.

Post by bilou »

Bonjour,
Je ne savais pas trop ou mettre ça et vu que ça concerne la teinte des pixels ...

j'ai fait un petit exemple qui me permet de récupérer la teint d'un pixel, soit par couleur teintergb(Color), soit par pixel teintexy(x, y) .

On peut facilement modifier les fonctions pour travailler sur la saturation et la luminosité si on veut.

code d'exemple:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="0.1.2" scriptVersion="1.0.0" os="Windows"/>
    <actions>
        <action name="ActionGoto" version="1.0.0"/>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
        <action name="ActionPause" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionCode">
            <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">//======================================================================//
//   Conversion RGB -> HSL
//======================================================================//
function teintergb(color){
   var edte,edsa,edlu; 
   var edcr=parseInt(color.red)/255; 
   var edcg=parseInt(color.green)/255; 
   var edcb=parseInt(color.blue)/255; 
   var Min=Math.min(edcr,Math.min(edcg,edcb));
   var Max=Math.max(edcr,Math.max(edcg,edcb));
   edlu=(Max+Min)/2; 
   if(Max==Min){edte=0;edsa=0;}else{
      if(edlu<0.5)edsa=(Max-Min)/(Max+Min);else edsa=(Max-Min)/(2-Max-Min);
      switch(Max){
         case edcr:edte=(edcg-edcb)/(Max-Min);break; 
         case edcg:edte=2+(edcb-edcr)/(Max-Min);break; 
         case edcb:edte=4+(edcr-edcg)/(Max-Min);break;}}
   edte=(edte*240)/6;if(edte<0)edte=edte+240;edsa*=240;edlu*=240; 
   hue=Math.round(edte); 
   sat=Math.round(edsa); 
   lum=Math.round(edlu);
return ( hue );
}

function teintexy(x, y){
   var color = Image.takeScreenshot().pixel(x, y)
   var edte,edsa,edlu; 
   var edcr=parseInt(color.red)/255; 
   var edcg=parseInt(color.green)/255; 
   var edcb=parseInt(color.blue)/255; 
   var Min=Math.min(edcr,Math.min(edcg,edcb));
   var Max=Math.max(edcr,Math.max(edcg,edcb));
   edlu=(Max+Min)/2; 
   if(Max==Min){edte=0;edsa=0;}else{
      if(edlu<0.5)edsa=(Max-Min)/(Max+Min);else edsa=(Max-Min)/(2-Max-Min);
      switch(Max){
         case edcr:edte=(edcg-edcb)/(Max-Min);break; 
         case edcg:edte=2+(edcb-edcr)/(Max-Min);break; 
         case edcb:edte=4+(edcr-edcg)/(Max-Min);break;}}
   edte=(edte*240)/6;if(edte<0)edte=edte+240;edsa*=240;edlu*=240; 
   hue=Math.round(edte); 
   sat=Math.round(edsa); 
   lum=Math.round(edlu);
return ( hue );
}
</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="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="1">teintergb(Image.takeScreenshot().pixel(Mouse().position().x,Mouse().position().y));</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</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="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="1">teintexy(Mouse().position().x,Mouse().position().y);</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="line">
                <subParameter name="value" code="0">2</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Couleur de pixel : idée.

Post by Jmgr »

Le forum possède une partie "Tutos et exemples" : http://jmgr.net/forum/viewforum.php?f=25 ;)
"My software never has bugs. It just develops random features."
Post Reply