GUI to browse and select images
ktenney at gmail.com
ktenney at gmail.com
Tue Oct 5 09:25:50 EDT 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