Prélèvement de couleur en code

Vous voulez de l'aide ? Postez ici :)
Post Reply
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Prélèvement de couleur en code

Post 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
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Prélèvement de couleur en code

Post 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.
"My software never has bugs. It just develops random features."
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Prélèvement de couleur en code

Post by Violette »

Le tuto d'openclassrooms est pas mal fait, http://fr.openclassrooms.com/informatiq ... javascript.
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Prélèvement de couleur en code

Post 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.
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Prélèvement de couleur en code

Post 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.
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Prélèvement de couleur en code

Post 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.
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Prélèvement de couleur en code

Post by Violette »

Pardon ouais, aktiona...
Euh, acsiona...
Argll caramba, encore raté :X
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Prélèvement de couleur en code

Post 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 :)
"My software never has bugs. It just develops random features."
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Prélèvement de couleur en code

Post by Sergent-Quentin »

:lol:

Tout va bien alors :D
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Prélèvement de couleur en code

Post 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
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Prélèvement de couleur en code

Post 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à :)
"My software never has bugs. It just develops random features."
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Prélèvement de couleur en code

Post 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");
}
Post Reply