Partage

Récupérer la couleur d'un pixel

Comment récupérer la couleur d'un pixel sous processing

Sujet résolu
14 mars 2018 à 16:24:39

Bonjour,

Comme vous l'avez sûrement lu dans le titre, je cherche à récupérer la couleur d'un pixel. Je connais la fonction get(x, y);, mais quand je regarde la valeur que prend ma variable color, c'est un peu bizarre : c'est des nombres négatifs du genre -15624562 ou - 17896. 

Le but c'est de récupérer le code RVB pour isoler ensuite les 3 composantes et leurs faire quelques calculs.

Merci pour vos réponses

La logique est illogique à partir du moment où elle est logique.

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
14 mars 2018 à 17:59:07

int a = (argb >> 24) & 0xff;
int r = (argb >> 16) & 0xff;
int g = (argb >> 8) & 0xff;
int b = argb & 0xff;

Où argb est ta valeur.

Enfaite tes 4 valeurs sont codées entre 0 et 255, soit un byte. Et donc les 4 valeurs ensemble font 4 bytes, soit 1 int.
Donc en gros ta valeur obtenue était toutes les couleurs confondues, et donc ce mini code permet de récupérer les bytes un par un afin de récupérer les valeurs d'origines.

Si tu connais un peu le fonctionnement de la mémoire, tu comprendras ;)
15 mars 2018 à 17:25:53

ShE3pyGame a écrit:

int a = (argb >> 24) & 0xff;
int r = (argb >> 16) & 0xff;
int g = (argb >> 8) & 0xff;
int b = argb & 0xff;


Où argb est ta valeur.

Enfaite tes 4 valeurs sont codées entre 0 et 255, soit un byte. Et donc les 4 valeurs ensemble font 4 bytes, soit 1 int.
Donc en gros ta valeur obtenue était toutes les couleurs confondues, et donc ce mini code permet de récupérer les bytes un par un afin de récupérer les valeurs d'origines.

Si tu connais un peu le fonctionnement de la mémoire, tu comprendras ;)

J'ai bien compris ce que tu me dis, mais déjà il n'y a que 3 valeurs normalement : le rouge, le vert et le bleu. Et dans ce cas d'ou viens le - (moins) ? Une composante ne peut être négative

-
Edité par Gashmob 15 mars 2018 à 17:26:58

La logique est illogique à partir du moment où elle est logique.
15 mars 2018 à 17:47:09

Faut, il y a 4 valeurs par pixel.
Le taux de rouge, le taux de vert, le taux de bleu et l'opacité (A).

Après l'opacité n'est pas supporté par tout les formats d'images (notamment les jpg), donc effectivement le a peut être enlever si tu n'utilise pas l'opacité.

Après pour l'histoire du nombre négatif, c'est car tu tente d'afficher un nombre à 4 bytes alors que ce n'est pas un nombre mais 4x1 byte (oui c'est différent).
La mémoire ne peut stocker que des nombres, après il faut lire ce nombre correctement afin de récupérer ce qui tu veut (un caractère par exemple).
En gros tu tente d'afficher un int qui n'en n'est pas un ;)
16 mars 2018 à 17:25:28

Effectivement, ça marche très bien, merci !!! :D
La logique est illogique à partir du moment où elle est logique.

Récupérer la couleur d'un pixel

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown