pho (pronounced like the first syllable in "photo") 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.
The current stable version is pho 0.9.6.
If you feel experimental, please help me test pho 0.9.7-pre7.
April 2011: I really think this one will be the one, and a real 0.9.7 is
imminent. (But of course, I always think that.)
To get either one, skip to the download section.
The big change here is Keywords mode. It uses the same note flags that Pho has always had, but Keywords mode gives you an easy way to annotate a directory of images with strings. You can type in phrases for each note, and you can have up to 31 notes now, not just 10. If you use Pho to categorize your photos, you'll find Keywords mode very handy.
There's also a new slideshow mode, where you specify the interval in seconds (e.g. pho -p -s5 for a 5-second delay between images). You can use this for a screensaver, or just to go through slides automatically. Hitting the spacebar cancels slideshow mode.
You can now customize the command called up with the 'g' key.
It defaults to gimp (not gimp-remote as in previous pho versions),
but you can call any program you like,
e.g. view the current image in firefox with
export PHO_CMD="firefox %s" --
don't forget the %s for the filename!
BSD users: pho should build on *BSD now as of 0.9.6-pre2. If it doesn't, please let me know.
Other changes include major work on scaling modes. Double and half size mode now behave differently depending on whether you're in normal or full size mode, and the scaling factor (e.g. half size) is remembered as you go from image to image.
Warning: I've swapped the meanings of f and F. I found that I use full size mode all the time, whereas I seldom use full screen, and when I do, I use it once at the beginning of a session (e.g. to view a bunch of cartoons scaled up). So it makes more sense to have full size on f (easier to type).
I've also done quite a bit of performance work, to reduce the number of redraws, speed up rotates, and reduce the number of times Pho has to re-read the file on disk.
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:
Since I wrote pho several years ago, I keep hearing about other image viewers, and thinking maybe pho was redundant. But I recently did a search, and couldn't come up with any other image viewers that are similarly efficient for paging through large collections of images. So I guess I'll keep maintaining pho!
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. You can convert those to other formats using the ImageMagick utility.
Pho can delete images on disk, but it can't save rotated images yet. I use my imagebatch scripts for that, or you can use a commandline utility like ImageMagick (which is what my imagebatch scripts use under the hood).
Experimental version:
pho-0.9.7-pre7.tar.gz.
(source tarball).
Adds better handling of EXIF rotation, and a new o key command to change
the working file set.
Please report any bugs you find!
I've stopped linking to pho 0.9.6 because even though it's not officially released, pho-0.9.7-pre is so much better and more stable.
Latest source tree: Pho is now hosted on Google Code and you can get the latest source tree there, as well as file bugs or otherwise participate. There's also a Github mirror for pho.
Ubuntu (Hardy) package: pho_0.9.6_i386-hardy.deb
Debian (Etch) package: pho_0.9.6_i386-etch.deb
Windows binary (requires gtk+): pho-0.9.5-pre5.zip. (Thanks to Michael Schumacher!) The Windows binary is currently still on 0.9.5 -- I'll put up binaries for 0.9.6 when I can get some.
Mac users: Pho does work on Mac OS X if you have the appropriate gtk/gdk headers and libraries. I've only seen it used as an X11 application, but in theory it should be able to run with the new experimental native gtk libraries too. If you've tried it, let me know how it works!
To compile pho, you'll need a compiler, GTK, and all the libraries it depends on. For example, on Ubuntu, this command should get you what you need:
aptitude install build-essential libgtk2.0-dev
If you like pho, or if you think it's promising but there's some feature it really needs ... let me know!