Page 1 of 1

Prélèvement de couleur en code

Posted: 01 Oct 2014, 20:01
by Sergent-Quentin
Bonjour à tous

J'ai plusieurs actions :

001 : Trouver image, renvoie la position de l'image trouvée sous forme de variable :arrow: "depart"
002 : Code,
var arriver = new Point(depart);
arriver.x=arriver.x + 50;
003 : Couleur de pixel, la position du pixel est "arriver" et la couleur est 88:83:58 ( exemple )
004 : Couleur de pixel, la position du pixel est "arriver" et la couleur est 100:120:58 ( exemple )
005 : Couleur de pixel, la position du pixel est "arriver" et la couleur est 98:70:60 ( exemple )
006 : Boite de dialogue, affiche le message "couleur inconnue"

Ce que je voudrais faire :

Remplacer les 3 actions "Couleur de pixel" par une action code :)

( J'ai chercher sur le site d'actionaz mais j'ai juste réussi à copier des couleurs, créer des couleurs, comparer, mais incapable de l'appliquer à ce que je voulais faire :( )

Voici en texte ce que fait le script :

- Il trouve l'image et donne sa position
- Création d'un nouveau point qui sur lequel on mettra + 50 sur l'axe X
- Il la compare aux 3 couleur de pixels
- Si la comparaison de la couleur est bonne il revient sur le code pour rajouter + 50 sur l'axe X puis recommence sa boucle
- Si la comparaison de la couleur est mauvaise il affiche le message "couleur inconnue"

Voilà tout, je vous remercie pour vos réponses :)

( si jamais vous connaissez un tuto qui se rapprocherai le plus de ce langage, emascript je crois, je suis preneur ^^, merci )

Bonne journée

Sergent-Quentin

Re: Prélèvement de couleur en code

Posted: 02 Oct 2014, 12:56
by Jmgr
Tu peux utiliser un code comme celui-là pour faire une capture d'écran et récupérer la couleur d'un pixel. C'est ce que fait l'action Couleur de pixel.

Code: Select all

var image = Image.takeScreenshot();
var color = image.pixel(42, 42);
if(color.equals(new Color(255, 128, 0)))
	//...
Note bien qu'il n'est pas possible d'écrire

Code: Select all

if(color == new Color(255, 128, 0))
à cause de lacunes dans l'Ecmascript (surcharge des opérateurs), malheureusement...
( si jamais vous connaissez un tuto qui se rapprocherai le plus de ce langage, emascript je crois, je suis preneur ^^, merci )
Tu peux suivre n'importe quel tuto sur le Javascript, tout en gardant en tête que certains objets comme "window" ou "document" ainsi que la fonction "alert" sont spécifiques au Web et ne sont donc pas disponibles.

Re: Prélèvement de couleur en code

Posted: 02 Oct 2014, 13:29
by Violette
Le tuto d'openclassrooms est pas mal fait, http://fr.openclassrooms.com/informatiq ... javascript.

Re: Prélèvement de couleur en code

Posted: 02 Oct 2014, 21:54
by Sergent-Quentin
Jmgr wrote:Tu peux utiliser un code comme celui-là pour faire une capture d'écran et récupérer la couleur d'un pixel. C'est ce que fait l'action Couleur de pixel.

Code: Select all

var image = Image.takeScreenshot();
var color = image.pixel(42, 42);
if(color.equals(new Color(255, 128, 0)))
	//...
Je ne pensais pas que l'action couleur de pixel prenais une capture d'écran ^^, j'ai réussi à faire ce que je voulais.

Merci beaucoup :D
Violette wrote:Le tuto d'openclassrooms est pas mal fait, http://fr.openclassrooms.com/informatiq ... javascript.
Oui, un site très pratique pour apprendre le programmation, apparemment ça reste le plus idéal pour le JavaScript malgré qu'il soit basé sur l'HTLM, merci.

Re: Prélèvement de couleur en code

Posted: 03 Oct 2014, 12:13
by Violette
Ben disons que c'est un peu normal, à l'origine le JS est apparue pour rendre une page web dynamique coté client, et la base d'une page web, c'est du HTML ^^.

EDIT : Si tu veux faire ça proprement, commence par voir le tuto concernant le HTML, si tu veux gagner du temps, saute tout ce qui touche au CSS. Mais ça te sera utile aussi dans Actionna, pour remplir un QLabel par exemple. Dans tout les cas, je te conseille de t'entrainer avec du JS pur, sur ton navigateur, dans une premier temps, car les outils de débugs sont bien plus explicite/pratique. La console de ff ou chrome est très bien et tu peux toujours installer Firebug en module complémentaire même si perso je ne l'utilise même plus.

Re: Prélèvement de couleur en code

Posted: 04 Oct 2014, 14:38
by Sergent-Quentin
Violette wrote:Mais ça te sera utile aussi dans Actionna,
Actionna ? :D, Je crois que Jmgr n'aime pas qu'on déforme le nom de son logiciel :mrgreen:

Sinon merci pour ton guide :) , J'allais me lancer un jour dedans pour pouvoir pousser mes connaissances et découvrir des astuces ou autres qui me faciliteront le codage.

Re: Prélèvement de couleur en code

Posted: 05 Oct 2014, 00:47
by Violette
Pardon ouais, aktiona...
Euh, acsiona...
Argll caramba, encore raté :X

Re: Prélèvement de couleur en code

Posted: 06 Oct 2014, 16:39
by Jmgr
Sergent-Quentin wrote:
Violette wrote:Mais ça te sera utile aussi dans Actionna,
Actionna ? :D, Je crois que Jmgr n'aime pas qu'on déforme le nom de son logiciel :mrgreen:
Bah en fait c'est mon côté allemand + le fait que je sois développeur qui fait que je sois à cheval sur les dénominations, mais bon, je suis pas psychorigide non plus hein :)

Re: Prélèvement de couleur en code

Posted: 08 Oct 2014, 16:50
by Sergent-Quentin
:lol:

Tout va bien alors :D

Re: Prélèvement de couleur en code

Posted: 10 May 2015, 20:44
by Sergent-Quentin
Petit up :

je voulais savoir comment on peut faire pour analyser plusieurs couleurs du genre comme ça ( le code ne fonctionne pas, c'est juste pour aiguiller ce que je cherche ^^ ):

Code: Select all

    var image = Image.takeScreenshot();
    var color = image.pixel(42, 42);
    if(color.equals(new Color(255, 128, 0 || 1445, 78, 99)))
       //...
Merci beaucoup

Cordialement

Sergent-Quentin

Re: Prélèvement de couleur en code

Posted: 10 May 2015, 23:12
by Jmgr
Quelque chose comme ça :

Code: Select all

if(condition1 || condition2)
Dans ton cas, la condition1 c'est color.equals(new Color(255, 128, 0)), et voilà :)

Re: Prélèvement de couleur en code

Posted: 11 May 2015, 11:57
by Sergent-Quentin
Ah donc en clair :

Code: Select all

  if(color.equals(new Color(255, 128, 0)) || color.equals(new Color(200, 28, 44)))
c'est bien ça ? ^^

Edit : Je viens de tester c'est bien ça :)

Merci :)

Pour eux qui veulent le code complet

Code: Select all

var image = Image.takeScreenshot();
var color = image.pixel(486, 203);
if(color.equals(new Color(255, 128, 0)) || color.equals(new Color(147, 160, 166)))
Console.print("vrai");
else {
Console.print("faux");
}