GUI to browse and select images

ktenney at gmail.com ktenney at gmail.com
Tue Oct 5 15:25:50 CEST 2004


D,

I am interested in a very simple interface.
A frame filled with thumbnails
of images, allowing selecting multiple items.

I want to implement these thumbnail standards;
http://triq.net/~jens/thumbnail-spec/index.html
The set of thumbs in a frame would come from a list of
thumb image file names. The list might be generated
according to the contents of a directory, might be
from a database query.

The spiffy management and manipulation functionality
would be handled by right-click menus.

It seems the fashionable way to do such
things (Zope3, Chandler, PEAK ...) is
XML style configuration files.

<RightClickChoices>
<menuitem label="Make Master',
description = 'Convert image to tif, load in The Gimp',
implements = ImageTools.MakeMaster />

<menuitem label = 'email image(s)',
description = 'Resize, compress, prompt for address, send',
implements = ImageTools.Relocate.EmailImage />

<menuitem label = 'Manipulate image',
description = 'modify the image(s) in some cool way',
implements = ImageTools.Manipulations />

<submenu>
<menuitem label = 'swap palettes',
description = 'exchange the colors used in 2 images',
implements = ImageTools.Manipulations.SwapPalettes
/>

<menuitem label = 'embed images',
description = 'place the image chosen first
inside the second',
implements = ImageTools.Manipulations.Embed />
</submenu
...
</RightClickChoices>

When a new routine is developed, it is entered into the menu
configuration and becomes available to the app.

The code might look like;

import Chooser, ImageTools
GUI = Chooser.Chooser()

images = getthumbchoices(path.imagefiles)
-or-
images = query('select thumb where mydb.client = webclient')

selectedimages, selectedmenuitem =  GUI(images)
ImageTools.implement(selectedimages, selectedmenuitem)

I expect filesystem navigation would be handy,
that could be handled by a tree widget which
would send lists to the GUI.

I like the idea of the GUI remaining very simple, clean and fast,
with very flexible functionality behind it.

I don't have the time or coding skills to implement it in
anything but high level components..

Thanks,
Kent




More information about the Python-list mailing list