#1 Le 20/01/2011, à 08: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, à 07:30)
Hors ligne
#2 Le 20/01/2011, à 09: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, à 09:19
- harlock1
Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande
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, à 09: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, à 09:51)
Hors ligne
#5 Le 20/01/2011, à 14: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…
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, à 07:30
- harlock1
Re : [RESOLU] Obtenir la valeur d'un pixel d'une image en ligne de commande
Merci pour les réponses !
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