pho: View and annotate multiple images

...Akkana

pho is a lightweight program for viewing large numbers of images quickly, rotating or deleting some, and making notes about what to do with each image -- for instance, for going through hundreds of images after uploading them from a digital camera.

Why another image viewer? Surely there are plenty of those?

I used to use xv for paging through images -- it's quite a good viewing program -- but it had a few features which annoyed me. For example, it creates a directory called .xvpics in every directory it touches; and if an image has to be resized to fit the screen, and after that you save it (perhaps after rotating it), it saves at the smaller size and boom, there goes your high-res image.

But, more important, there were a few extra things I needed. During image triage, I need to be able to do a few things quickly:

With xv, I found that I was writing these lists on paper, or trying to keep track of them in my head. That's dumb! Why not make the computer do that work? So I did.

Currently, pho can delete images on disk, but it can't save rotated images yet. I use my imagebatch scripts for that.

Pho can read any format supported by gdk-pixbuf. I haven't found a list of those formats anywhere, but it seems to be substantial. The only format I've hit so far that it doesn't read is photocd. I usually use hpcdtoppm for PhotoCDs.

How to use pho

Usage: pho *.jpg (or whatever).
It will show the first image, scaled for your screen if needed. Then the following keys work:
space
Go to next image.
backspace, -
Go to previous image.
r, t, right-arrow
Rotate right (clockwise).
R, T, left-arrow
Rotate left (counter-clockwise).
up-arrow
Rotate 180 degrees.
d
Bring up a delete dialog (another d deletes the file)
i
Show information about the image.
0-9
Add this image to the appropriate list.
q
Quit.
pho will remember the correct (last) rotation for each image. When it exits (either because the last image was viewed or because the user typed q), it will print out the images that need to be rotated and deleted (it does not actually change the files on disk), and the images which were added to numbered lists. (For example, list 1 might be the images I want to use as wallpaper, and list 5 might be the images I want to make into a web page.)

Getting pho

pho uses the
gdk-pixbuf library for reading, scaling, and displaying images. So you will need gdk-pixbuf installed in order to run pho. To compile it, you will also need gdk-pixbuf-devel. You may need to edit the Makefile if your system has gdk-pixbuf installed in different place from my system (sorry, no autoconf yet). Also included is a little xlib program, xpho, which is mostly interesting as an example of how to use gdk_pixbuf_xlib.

As far as I know, gdk-pixbuf is Unix only, so this program won't work on Windows or Mac machines. (But you're welcome to use the skeleton of the program and insert your own platform specific image drawing code.)

pho binary for Linux i386 (compiled on Redhat 7.3)
latest pho source tarball (includes man page)

If you like pho, or if you think it's promising but there's some feature it really needs, or have an idea for a better name for it ... let me know!

Changelog

7/21/2002, Pho 0.5:
Fix a bug where image rotations were wrong when going backward.
7/11/2002, Pho 0.5:
Add delete dialog, and really delete files on disk.
7/3/2002, Pho 0.4:
Fixed a bug with gif rotation.
7/1/2002, Pho 0.3:
Rename yass to pho, add info dialog.
6/28/2002, Yass 0.2
Some added features; add manual and make install target.
6/24/2002, Yass 0.1:
First release.

Akkana's Software
Shallowsky Home