scrollable canvas when thumbnail is selectedthe corresponding image is displayed full size in pop-up window unlike our prior viewersthoughpyphoto is clever enough to scroll (rather than cropimages too large for the physical display moreoverpyphoto introduces the notion of image resizing--it supports mouse and keyboard events that resize the image to one of the display' dimensions and zoom the image in and out once images are openedthe resizing logic allows images to be grown or shrunk arbitrarilywhich is especially handy for images produced by digital camera that may be too large to view all at once as added touchespyphoto also allows the image to be saved in file (possibly after being resized)and it allows image directories to be selected and opened in the gui itselfinstead of just as command-line arguments put togetherpyphoto' features make it an image-processing programalbeit one with currently small set of processing tools encourage you to experiment with adding new features of your ownonce you get the hang of the python imaging library (pilapithe object-oriented nature of pyphoto makes adding new tools remarkably simple running pyphoto in order to run pyphotoyou'll need to fetch and install the pil extension package described in pyphoto inherits much of its functionality from pil--pil is used to support extra image types beyond those handled by standard tkinter ( jpeg imagesand to perform image-processing operations such as resizesthumbnail creationand saves pil is open source like pythonbut it is not presently part of the python standard library search the web for pil' location (currently safe betalso check the extensions directory of the examples distribution package for pil self-installer the best way to get feel for pyphoto is to run it live on your own machine to see how images are scrolled and resized herewe'll present few screenshots to give the general flavor of the interaction you can start pyphoto by clicking its iconor you can start it from the command line when run directlyit opens the images subdirectory in its source directorywhich contains handful of photos when you run it from the command lineyou can pass in an initial image directory name as command-line argument figure - captures the main thumbnail window when run directly internallypyphoto is loading or creating thumbnail images before this window appearsusing tools coded in startup may take few seconds the first time you open directorybut it is quick thereafter--pyphoto caches thumbnails in local subdirectory so that it can skip the generation step the next time the directory is opened technicallythere are three different ways pyphoto may start upviewing an explicit directory listed on the command lineviewing the default images directory when no command-line argument is given and when images is present where the program is runpyphotoan image viewer and resizer