This is why I wrote Snoopy. Snoopy is a simple to use and relatively fast image viewer for 32-bit Windows environments. It supports most common raster formats and can be run directly from a CD requiring no prior installation to the computer. Snoopy also leaves the computer completely intact, ie. it doesn't create any installation directories, temporary files, registry entries or other 'pollution'.
After using some excellent freeware utilities myself for years, I decided to contribute something myself too and give Snoopy binaries away as freeware.
You can resize the Snoopy window to any size you like and the controls on the screen will be adjusted to the new size.
On bottom left of the window you can see three buttons. The 'Fit' button makes the image to be squeezed or stretched to fit the available image display area just like in the above screenshot. The '1:1' button instructs Snoopy to display the selected image in its' true size (see the image below).
Finally the '?' button opens a short help describing instructions on how to use Snoopy.
If the '1:1' display mode is selected and the image being displayed is larger than the available display area then only a fraction of the image is displayed. In this case you can pan the image by placing the cursor over the image, pressing the left mouse button and then dragging the image while keeping the left mouse button down. When you release the left mouse button the image is left to the new panned position (see the image below).
Right clicking the window titlebar opens a menu with standard window controls such as move and close. In addition to these there are two added commands print and copy.
The print command opens your computer's standard print dialog where you can select the printer and any printer specific parameters. Once you click the print button on this dialog the current contents of the image display area is printed maximized to the available paper area.
If the image is being displayed in fit-mode then the printing is done with full resolution of the image file regardless of your current window size. This is useful for quickly printing readable copies of large scanned documents etc. If the image is being displayed in 1:1-mode then only the visible portion of the image is printed at the current screen resolution.
The copy command copies the contents of the image display area to clipboard so you can paste it to other applications.
Double clicking the image with the left mouse button will temporarily remove the directory tree from view and expand the image to the full extents of the window. Double clicking the expanded image again will return to the original view including both the directory tree and the image.
In 1:1-mode pressing the plus (+) and minus (-) keys of your keyboard will zoom in and out the currently selected image. Pressing the 1:1-button again returns to the true 1:1-scaled image view.
The text field on the bottom of the screen can be used to enter and view textual descriptions of the images. To add or edit a description simply click on the text area and type your description. There is no need to explicitely save the text, it is done automatically.
Note: If the corresponding image file is in readonly mode (for example, when it is located on a CD-ROM) the image description is also readonly. Furthermore the readonly mode can be forced using the configuration parameters explained below.
The image desriptions are stored in the same directories with the images as standard ASCII text files with filenames having the same bodies as the image files but a .txt -extension. So an image file named stairs.gif will have a description file named stairs.txt. You can use this feature to 'bulk load' descriptions to the image directories and avoid typing them manually through the Snoopy interface for each image.
After unzipping you will see the following directory hierarchy:
| AUTORUN.INF | MFC42.DLL | MSVCRT.DLL | MSVCRT40.DLL | snoopy.exe | snoopy.ini | +- Images +- Large image ¦ nfo.txt ¦ Stairs.gif ¦ Stairs.txt ¦ +- Small images nfo.txt Pioneer 10 plaque.jpg Pioneer 10 plaque.txt Santa Claus.jpg Santa Claus.txtThis directory structure is a complete and working example of a setup you'll want to create for your own purposes. There is a small subtree 'Images' that contains a few example images and their descriptions so you can try it out simply by starting the snoopy.exe application.
The snoopy.exe file is the main application. The configuration file snoopy.ini contains a lot of parameters that you can modify to alter the behaviour and appearance of Snoopy. Please see the next section 'Configuration options' for detailed information.
The autorun.inf file is an example of an autorun configuration file you can include in the root directory of your own CD-R -disk if you want Snoopy to launch automatically when the CD is inserted. The provided example file works as it is if the example directory structure is burned to a CD-R disk.
All the included DLL-files are standard redistributable Microsoft Visual C++ 6.0 runtime libraries. These libraries are usually included in the Windows installation and should therefore not be needed. There are, however, different versions of these libraries out there and since Snoopy was compiled with a fairly new version (6.0) of the Microsoft Visual C++ compiler, you can encounter target machines where the shipped libraries are not up-to-date. Therefore I would strongly recommend that you leave these libraries in the same directory with the snoopy.exe program.
To create your own distributable image collection all you need to do is:
[General] RootDirectory=Images ShowHelpFirst=0 FitFirst=0 MaximizeWindow=0 ReadOnlyDescription=0 DefaultDescriptionFile=\nfo.txt [WindowContents:Main] Position=92,39,652,488,0,0 Titlebar=Example Snoopy setup [%s] Const1=MG,5 Const2=BH,20 ; Item 1: Directory tree Item1ID=1001 Item1X=MG Item1Y=MG Item1W=WDT/5 Item1H=HGH-3*MG-BH ; Item 2: The image display frame Item2ID=1002 Item2X=2*MG+WDT/5 Item2Y=MG Item2W=4*WDT/5-3*MG Item2H=HGH-2*MG-3*BH ; Item 3: The '1:1' button Item3ID=1003 Item3X=MG+0*(WDT/5)/3 Item3Y=HGH-MG-BH Item3W=(WDT/5)/3 Item3H=BH ; Item 4: The 'Fit' button Item4ID=1004 Item4X=MG+1*(WDT/5)/3 Item4Y=HGH-MG-BH Item4W=(WDT/5)/3 Item4H=BH ; Item 5: The '?' button Item5ID=1006 Item5X=MG+2*(WDT/5)/3 Item5Y=HGH-MG-BH Item5W=(WDT/5)/3 Item5H=BH ; Item 6: The description field Item6ID=1007 Item6X=Item2X Item6Y=HGH-MG-3*BH Item6W=Item2W Item6H=3*BH Item6Font=Arial,24 Item1001Index=1 Item1002Index=2 Item1003Index=3 Item1004Index=4 Item1006Index=5 Item1007Index=6 [WindowContents:MainFull] Position=66,22,1318,908,0,1 Titlebar=Example Snoopy setup [%s] Const1=MG,5 Const2=BH,20 ; Item 1: Directory tree Item1ID=1001 Item1X=0 Item1Y=0 Item1W=0 Item1H=0 ; Item 2: The image display frame Item2ID=1002 Item2X=MG Item2Y=MG Item2W=WDT-2*MG Item2H=HGH-2*MG ; Item 3: The '1:1' button Item3ID=1003 Item3X=0 Item3Y=0 Item3W=0 Item3H=0 ; Item 4: The 'Fit' button Item4ID=1004 Item4X=0 Item4Y=0 Item4W=0 Item4H=0 ; Item 5: The '?' button Item5ID=1006 Item5X=0 Item5Y=0 Item5W=0 Item5H=0 ; Item 6: The description field Item6ID=1007 Item6X=0 Item6Y=0 Item6W=0 Item6H=0 Item1001Index=1 Item1002Index=2 Item1003Index=3 Item1004Index=4 Item1006Index=5 Item1007Index=6The parameters in the [General] section are the most probable candidates for modification.
The RootDirectory-parameter defines the directory from which Snoopy will construct the directory tree visible in the user interface. The user interface will display the complete directory tree and all files in and underneath the root directory specified with this parameter. The root directory can be an absolute reference (such as "C:\My Documents"), a relative reference (such as "..\Pictures") or a reference to a Windows network resource (such as "\\MYSERVER\Media\Images"). If a relative reference is used then it will be relative to the current working directory of the snoopy.exe program.
The ShowHelpFirst parameter defines whether the help screen normally accessible with the '?' button is displayed upon starting the software. Setting it to value of 1 will display the help screen and value of 0 will not display it.
The FitFirst parameter defines the initial scaling mode. A value of one sets Snoopy to 'Fit'-mode upon startup (ie. the 'Fit' button will be pressed and the software will function accordingly) and a value of 0 will set Snoopy to '1:1'-mode.
The MaximizeWindow parameter will determine whether Snoopy will be opened in a maximized window upon startup. A value of 1 will do this and a value of 0 will open the window in normal mode. The size and position of the normal mode are determined with the Position parameter in the [WindowContents:Main] section.
The ReadOnlyDescription parameter will determine whether the text descriptions of the images will be read only or not. A value of 1 will set them readonly denying the user from editing the descriptions with the Snoopy user interface. A value of 0 will allow the user to edit the descriptions. Note however that readonly mode is always forced when the image file is readonly.
The DefaultDescriptionFile parameter contains the default name of item description files. If a selected image or folder doesn't have a specific description file then the software tries to open a file with this name appended to the image (or directory) path and display its contents.
The [WindowContents:Main] section defines the appearance of the application window.
The four first values listed in the Position parameter define the x-coordinate, y-coordinate, width and height of the application window.
The Titlebar option defines the text displayed in the application titlebar. This text string can also contain a substring '%s' which, if present, will be replaced with the name of the currently selected item in the directory tree.
The rest of the parameters in this section define the positions of all the dialog items on the application window. Two constant values are first defined with the Const parameters (MG=margin and BH=button height).
The locations and sizes of each item are specified with parameters Item?X (x-coordinate), Item?Y (y-coordinate), Item?W (width) and Item?H (height). You should not change the internal item ID numbers specified with the Item?ID parameters or the definitions will not work. These location and size parameters can be defined with artihmetic expressions as you can see in the example file. In addition to the predefined constants MG and BH there are two built in dynamic variables available that represent the current application window width (WDT) and height (HGH). Any parameter defined earlier can also be used as a variable in these expressions as can be seen in the definition of Item6 in the example file.
For the text description field there is an additional Item6Font definition that can be used to set the font and size of the image description field.
The [WindowContents:MainFull] section defines the appearance of the application window in the image-only -mode, ie. when the initial image has been double-clicked and the window only contains the image, not the image directory tree.
The Item?Index-parameters are for internal use by the software and they should not be modified.
The command line syntax of Snoopy is:
snoopy.exe [startimage] [/conf:configfile] [/fit | /nofit] [/help | /nohelp] [/max | /nomax]All arguments and options are optional and their meanings are:
This software is supplied as it is with absolutely no guarantees. If you decide to download and use it you do so completely at your own risk. There is no support available for the software apart from the documentation provided on this webpage.
This software is copyrighted. The owner of this software is Ari Paananen. This information with a link to this WWW-page is displayed on the help screen of the software. You are not allowed to redistribute modified versions of this software where this information or any other supplied fixed feature has been altered. In other words you are not allowed to change a single bit in the snoopy.exe file if you want to redistribute it. You are allowed to modify the configuration file snoopy.ini for your specific needs and redistribute that.
You are free to use this software for any purpose be it personal, academic or commercial as long as you understand and comply with all the conditions presented in this section ('Disclaimers'), otherwise you are not allowed to download or use this software.
These terms apply to the software version available for public download at the moment. The terms of possible future versions of this software may change at any time without prior notice.
Download Snoopy 1.4 (approximately 1 megabyte)
Due to bandwidth limitations and excessive "leeching" of this complete web-page the older versions of the software are no longer available directly. If you really want to try the older versions, you're welcome to contact me (see the Feedback section below).
--
3rd of August 2003
Ari Paananen