Plugging external commands into ‘gqview’

Nov 28, 2009 • alan


I have been taking digital photographs since 1998, and so one piece of software which I use quite a bit is my photo organizer. I use a tool called “gqview”. It’s a very nice browser that shows folders and thumbnails and a large image on the screen at the same time. And it does a good job showing slide shows.

One nice feature of gqview is that you can plug external programs into the ‘edit’ menu. When you install it (at least on Ubuntu systems), a few of the plug-in’s are populated already:

  • edit in GIMP (external package: gimp)
  • edit in xpaint (external package: xpaint)
  • rotate clockwise (external package: libjpeg-progs)
  • rotate counter-clockwise (external package: libjpeg-progs)

I wanted to add a plug-in to shrink images a certain percentage. I often find that I want to send a bunch of pictures to friends via email, and I really don’t want to send a 50 MB email, and I don’t want the pictures to be so big that the reader had to scroll to see it.

It’s pretty easy to add the plug-in. The actual shrinking can be handled easily with the ‘convert’ command, which is part of the excellent ‘imagemagick’ set of graphics tools. Plugging convert into gqview is as easy as this:

%vif convert %p -scale 25% %p_tmp ; then
    mv %p_tmp %p ; else rm %p_tmp ; fi

I didn’t make this up myself — I simply copied the “rotate” plug-in’s and changed what I needed to. I am not sure what the %v is for, but it’s pretty clear that %p is the full path of the image file.

Now I can highlight a whole bunch of photos and shrink them all with a single command.