Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/01/2011, à 09:53

harlock1

[RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

Bonjour à tous,
Je souhaiterais, à partir d'un script bash, récuperer la valeur rgb d'un pixel d'une image, en fonction des coordonnées dudit pixel. Quelque chose qui s'utiliserait comme ça :

$ getpixelvalue -x 50 -y 100 image.png

Color at coordinates 50,100 of image.png is #FF2A32

Avant de programmer moi même ce truc, je me suis dis que dans la foultitude d'outils en ligne de commande disponibles pour linux, il devait bien avoir quelque chose de déjà fait pour ça.
J'ai lu la doc d'imagemagick, qui en principe fait tout, même le café, mais je n'ai rien trouvé dans ce sens.
Une recherche google n'a rien donné (à part des info pour programmer ça soit même).
Auriez vous déjà vu ce type de programme quelque part ?

Dernière modification par harlock1 (Le 21/01/2011, à 08:30)

Hors ligne

#2 Le 20/01/2011, à 10:14

jacobus77

Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

tu as testé grabc?

Hors ligne

#3 Le 20/01/2011, à 10:19

harlock1

Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

jacobus77 a écrit :

tu as testé grabc?

Non, mais apparement grabc est une pipette, non ? on clique sur un point de l'écran pour obtenir sa valeur. Moi je voudrais obtenir la valeur d'un pixel d'une image en fonction de ses coordonnées, sans qu'elle soit affichée à l'écran, et en ligne de commande.

Hors ligne

#4 Le 20/01/2011, à 10:34

jacobus77

Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

Dans ce cas probable que tu n'ai pas trop le choix tu devras surement passer par Xlib avec le language de ton choix.

Dernière modification par jacobus77 (Le 20/01/2011, à 10:51)

Hors ligne

#5 Le 20/01/2011, à 15:07

Mathieu147

Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

En tapant «Imagemagick get color» dans Google on trouve la réponse… roll

Si tu fais

convert image.png -crop 1x1+123+456  +repage image.txt && cat image.txt

avec 123 et 456 les coordonnées x et y de ton point, tu obtiens quelque chose comme

# ImageMagick pixel enumeration: 1,1,255,rgba
0,0: ( 64,  0, 60,255)  #40003C  rgba(64,0,60,1)

avec lequel tu devrais pouvoir te débrouiller.


Pffff…

Hors ligne

#6 Le 21/01/2011, à 08:30

harlock1

Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande

Merci pour les réponses !

jacobus77 a écrit :

Dans ce cas probable que tu n'ai pas trop le choix tu devras surement passer par Xlib avec le language de ton choix.

La Xlib non, puisqu'il s'agit de récupérer une info d'un pixel d'une image enregistré sur disque, en console.

@jacobus :

Merci ça marche !
Comme mes images sont en png j'avais aussi réussi avec le script suivant :

#!/bin/bash
convert -crop '1x1+'$1'+'$2 $3 pix.png
pnginfo -d pix.png|tail -1
rm pix.png

Qui s'utilise comme ça, en reprenant ton exemple :

$ getpngpixelinfo 123 456 image.png
[40 00 3c]

Mais évidemment ça ne marche qu'avec du png, tandis que ta commande fonctionne avec tous les formats supportés par imagemagick.

Hors ligne