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.
Skip to the download section.
7/13/2004: a new release is imminent. Lots of cool new improvements.
Works in gtk2 if you have it, but should still build on a gtk1
system. New "presentation mode" to do fullscreen (no window
borders).
If you want to help test it, grab pho-0.9.5-pre1.tar.gz.
Let me know if you have problems.
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:
- Rotate images by multiples of 90 degrees, and remember the rotations.
- Delete bad images.
- Copy a few of the best horizontals to my Backgrounds (wallpaper) directory.
- Note which images I might want to put on a web page (after resizing).
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.
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.
I usually use hpcdtoppm for PhotoCDs.
Pho can delete images on disk, but it can't save rotated
images yet.
I use my imagebatch scripts for that.
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, l, L, left-arrow
- Rotate left (counter-clockwise).
- up-arrow
- Rotate 180 degrees.
- home
- Go back to the first image.
- d
- Bring up a delete dialog (another d deletes the file)
- i
- Show information about the image
(includes EXIF info and JPEG comment, if any).
- 0-9
- Add this image to the appropriate list.
- f
- Toggle in and out of "full screen mode".
- q
- Quit.
pho will remember the correct (last shown) 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
The current version of pho is: 0.9.2 (updated 9/30/2003).
The binary packages are lagging slightly; stay tuned.
Dependencies:
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.
Pho does work on Mac OS X, as an X application
if you have the appropriate gtk/gdk headers and libraries.
Here's a mac binary (0.8, somewhat out of date).
It's built on OS X 10.2.2 and requires XFree86, gtk+, and gdk-pixbuf
(available as fink packages -- fink install gdk-pixbuf
will get all of it, but it may take a while if you don't already
have the gnome libraries).
I believe there's a gdk-pixbuf for Windows, but lacking a Windows
development machine I haven't tried it. I don't think it's available
for Mac Classic. (But you're welcome to use the
skeleton of the program and insert your own platform specific
image drawing code; if you send it to me I'd love to incorporate
it into the pho source.)
If you like pho, or if you think it's promising but there's some
feature it really needs ... let me know!
Changelog
- 9/30/2003, Pho 0.9.2:
- Don't try to move the window unless the image size has changed
(fix the annoying bug where pho wouldn't let you move windows).
Also fix a crash after dismissing the info dialog by clicking
on the windowmanager "X".
- 2/26/2003, Pho 0.9.1:
- Rusty Russell: fix an off-by-one error in rotation code,
reducing the need for extra memory;
Brian Langenberger: bracket printed filenames with quotes if
they contain spaces or quote characters.
- 1/8/2003, Pho 0.9:
- Fix pho.spec version, and a make clean bug.
- 12/3/2002, Pho 0.9pre2:
- Fix a crash in the quit dialog.
- 11/27/2002, Pho 0.9pre1:
- Add EXIF handling, using code from
jhead, by Matthias Wandel.
- 10/18/2002, Pho 0.8:
- Build RPM and deb; show image size in titlebar; add home key.
- 8/13/2002, Pho 0.7:
- Put image name in titlebar; prompt after last image before quitting;
add fullscreen mode.
- 7/28/2002, Pho 0.6.1:
- Fixed a bug with printing a note set on the last image.
- 7/21/2002, Pho 0.6:
- Code cleanup, change the handling of the notes structures.
- 7/21/2002, Pho 0.5.1:
- 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