From: Colin Clark Date: Tue, 27 Feb 2018 17:12:33 +0000 (+0000) Subject: Remote command --pixel-info X-Git-Tag: v1.5~169 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=bb224a9fd6d794525076129c7e123445cb87ef74 Remote command --pixel-info Additional remote command: geeqie --remote --pixel-info Gives X, Y and RGB of the mouse pointer on the current image. Format is: [x,y]: RGB( r, g, b) --- diff --git a/doc/docbook/GuideReferenceCommandLine.xml b/doc/docbook/GuideReferenceCommandLine.xml index f727e058..57a20170 100644 --- a/doc/docbook/GuideReferenceCommandLine.xml +++ b/doc/docbook/GuideReferenceCommandLine.xml @@ -221,6 +221,11 @@ --tell Print filename of current image + + + --pixel-info + Print X, Y and RGB of mouse pointer on current image + view:<file> diff --git a/geeqie.1 b/geeqie.1 index 301f4ee7..23486a06 100644 --- a/geeqie.1 +++ b/geeqie.1 @@ -168,6 +168,10 @@ Open FILE, do not bring Geeqie window to the top. Print filename of current image. .br .B +.IP \-\-pixel\-info +Print X, Y and RGB of mouse pointer on current image. +.br +.B .IP \-\-view: Open FILE in new window. .br diff --git a/src/remote.c b/src/remote.c index 00c40c6c..8649bcf2 100644 --- a/src/remote.c +++ b/src/remote.c @@ -30,6 +30,7 @@ #include "layout.h" #include "layout_image.h" #include "misc.h" +#include "pixbuf-renderer.h" #include "slideshow.h" #include "ui_fileops.h" #include "rcfile.h" @@ -608,6 +609,51 @@ static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data) gr_raise(text, channel, data); } +static void gr_pixel_info(const gchar *text, GIOChannel *channel, gpointer data) +{ + gchar *pixel_info; + gint x_pixel, y_pixel; + gint width, height; + gint r_mouse, g_mouse, b_mouse; + PixbufRenderer *pr; + LayoutWindow *lw = NULL; + + if (!layout_valid(&lw)) return; + + pr = (PixbufRenderer*)lw->image->pr; + + if (pr) + { + pixbuf_renderer_get_image_size(pr, &width, &height); + if (width < 1 || height < 1) return; + + pixbuf_renderer_get_mouse_position(pr, &x_pixel, &y_pixel); + + if (x_pixel >= 0 && y_pixel >= 0) + { + pixbuf_renderer_get_pixel_colors(pr, x_pixel, y_pixel, + &r_mouse, &g_mouse, &b_mouse); + + pixel_info = g_strdup_printf(_("[%d,%d]: RGB(%3d,%3d,%3d)"), + x_pixel, y_pixel, + r_mouse, g_mouse, b_mouse); + + g_io_channel_write_chars(channel, pixel_info, -1, NULL, NULL); + g_io_channel_write_chars(channel, "\n", -1, NULL, NULL); + + g_free(pixel_info); + } + else + { + return; + } + } + else + { + return; + } +} + static void gr_file_tell(const gchar *text, GIOChannel *channel, gpointer data) { LayoutWindow *lw = NULL; /* NULL to force layout_valid() to do some magic */ @@ -798,6 +844,7 @@ static RemoteCommandEntry remote_commands[] = { { NULL, "file:", gr_file_load, TRUE, FALSE, N_(""), N_("open FILE, bring Geeqie window to the top") }, { NULL, "File:", gr_file_load_no_raise, TRUE, FALSE, N_(""), N_("open FILE, do not bring Geeqie window to the top") }, { NULL, "--tell", gr_file_tell, FALSE, FALSE, NULL, N_("print filename of current image") }, + { NULL, "--pixel-info", gr_pixel_info, FALSE, FALSE, NULL, N_("print pixel info of mouse pointer on current image") }, { NULL, "view:", gr_file_view, TRUE, FALSE, N_(""), N_("open FILE in new window") }, { NULL, "--list-clear", gr_list_clear, FALSE, FALSE, NULL, N_("clear command line collection list") }, { NULL, "--list-add:", gr_list_add, TRUE, FALSE, N_(""), N_("add FILE to command line collection list") }, diff --git a/web/help/GuideReferenceCommandLine.html b/web/help/GuideReferenceCommandLine.html index ed61c7c6..e2b1762e 100644 --- a/web/help/GuideReferenceCommandLine.html +++ b/web/help/GuideReferenceCommandLine.html @@ -675,50 +675,55 @@ dd.answer div.label { float: left; } +--pixel-info +Print X, Y and RGB of mouse pointer on current image + + + view:<file> Open new window containing <file> - + --list-clear Clear command line collection list - + --list-add:<file> Add <file> to command line collection list - + raise Bring the geeqie window to the top - + -ct:clear|clean --cache-thumbs:clear|clean clear or clean thumbnail cache - + -cs:clear|clean --cache-shared:clear|clean clear or clean shared thumbnail cache - + -cm --cache-metadata clean the metadata cache - + -cr:<folder> --cache-render:<folder> render thumbnails - + -crr:<folder> --cache-render-recurse:<folder> render thumbnails recursively - + -crs:<folder> --cache-render-shared:<folder> @@ -726,12 +731,12 @@ dd.answer div.label { float: left; } 2 - + -crsr:<folder> --cache-render-shared-recurse:<folder> render thumbnails recursively - + --lua:<file>,<lua script> run lua script on file