Útil función de C para obtener el color de un pixel en pantalla.

Muchos saludos, comunidad de software libre, en esta ocasión quiero compartir una función que escribí en C para poder obtener el color de un pixel en una pantalla sin muchas complicaciones, para ello debe instalar primero

 

apt install grabc xdotool

 

La función es la siguiente:

 

char *color_pixel(int x, int y)
{
FILE *f = NULL;
char col[15] = {'\0'};
gchar cmd[80] = {'\0'};

system(«grabc 2>/tmp/colpx &»);
sleep(2); /* Debe incluir unistd.h */
sprintf(cmd, «xdotool mousemove_relative –sync %d %d click 1», x, y);
puts(cmd); /* Incluya stdio.h para usar esta función */
system(cmd); /* debe incluir stdlib.h */
f = fopen(«/tmp/colpx», «r»);
if(f == NULL)
return «error»;
else
{
fgets(col, 80, f);
fclose(f);
}
return strdup(col); /* Debe incluir string.h */
}

 

Para usarla:

char *color = NULL;

color = color_pixel(200, 500);

printf(«El color de este pixel es %s\n», color);

 

-Es muy necesario este tipo de funciones. Las referencias que he encontrado se refieren a gdk pero a mi parecer no hay estabilidad en la api y algunas funciones ya son obsoletas y hay que readaptar programas que la usen.

-La función pone grabc en segundo plano que es una utilidad de comandos que pone una cruz en el puntero y espera un click en una posición de la pantalla.

-Luego mueve el mouse a una posicion x, y y luego da un click manipulando el mouse, usted verá un salto del puntero a causa de esto.

-la posición se está tomando desde la posición actual del mouse.

Puede obtener el color de un pixel desde la terminal sin instalar nada con:

xwd -root -silent | convert xwd:- -depth 8 -crop ‘1×1+300+500’ txt:- | grep -om1 ‘#\w\+’ Donde 300 es una posicion X=300 y 500 son Y=500

¿Te resultó interesante? Compártelo ...



haylem

Publicado por haylem

Facebook » Google+ » Forma parte de GUTL desde el 9 diciembre, 2013. Me gusta la programación y la electrónica. Me encanta el soft libre y los sistemas que enseñan a trabajar. Me gusta buscar en lo dificil y aprender cosas nuevas. Nací el 4 de Nov 1988 y vivo en el vedado.

Este artículo tiene 2 comentarios

Los comentarios están cerrados.