SortPics: The Picture Sorting and Duplicate Checking Solution

(c) 1998-2006 SB Software,


The main purpose of SortPics is to sort large groups of image files into different categories. It's good for pictures you download off the net, from the newsgroups, or just about any other large volumes of image files that you should come across in your travels. SortPics is intended to make the process as easy and fast as possible, using such features as automatic duplicate file detection and one-click file categorization.

Let's work through a simple scenario. You've downloaded a ton of pictures from the newsgroup "". Specifically, you're looking for pictures of animals.. You'd like to separate your pictures into categories depending on the animal type -- dogs, cats, horses, birds, etc. You want to flip through the pictures you've downloaded one-at-a-time and move each picture into the desired category. This is exactly what SortPics is designed for!

Furthermore, let's assume you have a large existing collection of dog and cat pictures. People on the net have a tendency to upload the same picture with different names, and to upload different pictures with the same name, creating problems with duplicates. SortPics is ideal in this situation as it automatically scans your existing collection and will automatically display duplicates as they are found. You immediately know about the duplicate while you are sorting and can delete or rename it as desired.

See Also:

The SortPics illustrated quick-start tutorial will get you started in a hurry!

Key Features:

The SortPics Window:

The SortPics window is divided into several basic components. From left to right:

Categorization Setup:

The Categorization system consists of two major components:

For example, assume you collect pictures of animals, as well as pictures of cars. You could configure SortPics with a bank "animals" which contains the categories "dog","cat", and "bird", as well as a separate bank "cars" which had the categories "ford","chevy", and "dodge". Each bank acts independently of the others, so that while you're using the car bank you only see car categories whereas if you're using the the animals bank you only see animal categories.

You may completely ignore the concept of banks and simply put all of your categories in the same "default bank". This will work just fine.

When SortPics is first started, the categorization panel will include one bank, the "default bank", and no categories. You will have to create some categories to get started. Categories are created by pressing the little <New> button at the top of the categorization panel. Once you do this, you will be presented with a dialog box that enables you to either add new categories or new banks. Let's assume for the moment that you wish to just add some new categories for now.

The new-category dialog box includes three fields for creating your new category:

Once you've filled in the above fields and hit the <Ok> button, a new category will be created and added to the current bank. Continue and add all the categories you desire!

Adding banks is similar -- press the <New> button, click the selection to create a new bank, and enter the bank name into the dialog. The new bank will be created and you may then begin to add categories to it.

Moving Files into Categories:

We'll assume you want to move the file which is currently displayed into a category. If you'd like to move some other file, then use the Navigation Panel at the left to select a different file!

Moving files may be accomplished in several ways. The easiest is to just click on the category in the categorization panel which corresponds to where you want to move the file. It's very simple. If the category you want is in a different bank, then select the correct bank and it's categories will be displayed.

You may also move categories by hitting the appropriate Hot Key, if you have hot keys configured for the category.

Finally, you may press the <Move> button to automatically move the current image into whatever category is currently hilighted in the Categorization Panel.

Progressive-Key Categorization:

Progressive-key categorization is a new feature that is designed to aid professional photographers and users who might have large numbers of categories that they need to sort images into. It works similarly to the Hot Key feature, but allows you to use a series of keystrokes to select a category.

In order to use progressive key categorization, you will have to first enable it. This is done by using the <Setup> button, selecting the "categorization" tab, and then checking the option "enable progressive key categorization".

Once progressive key categorization is enabled, you can select category by typing the first few letters in the name of that category. Pressing <Enter> will move the image to the hilighted category, and pressing <Esc> will reset the keystrokes that you have typed. Pressing <backspace> will undo the last keystroke. 

Let's assume for example, that you are categorizing animals and you've set up the following categories:


There's only one category that starts with the letter "F", and it is "Fish". So, if you hit the "F" key, the fish category would be selected. Now, there are two categories that start with the letters "M" and "A": Mammals and Marsupials. So, in order to specify the mammals category, you would type "M", "A", and "M". If you wanted to specify marsupials, you would type "M", "A", and "R". Then hit <enter> to actually move the image.

Remember, progressive key categorization must first be enabled (via the <Setup> button and "categorization" page) before you can use it.

Advanced Options - Function Key Rating System

The function key rating system was written for a professional photographer who wished a quick and easy way to assign numerical ratings to his pictures. It works by renaming the picture when you apply a rating. The system is enabled by using the "Advanced" tab of the Configuration settings.

When the rating system is enabled, pressing one of the function keys (F1 ... F5) will rename the current image. For example, if you are looking at picture1.jpg, and you press F2, then the file would be renamed to R2_picture1.jpg. You can toggle the rating between prefix and suffix (for example, R2_picture1.jpg or picture1_R2.jpg). Several additional options can fine-tune the rating system:

Delay rating until categorization. This will cause the file to not be renamed until you hit one of SortPics categorization buttons (or use progressive-keystroke categorizaion, etc).

Require rating before categorization. This will cause SortPics to refuse to categorize a file until you have rated it by pressing F1 - F5.

Include parts of bank and cat name in rating field. This is a somewhat specialized option and adds part of the current category and bank name when you rate/categorize a file. I'm currently working on a more flexible and customizable system.

Use '=' instead of '_'. By default, the rating is separated from the filename by an underscore. This may cause some confusion if your camera already inserts underscores in the filename, thus you can toggle it to an equals sign instead.

The Duplicate Checker:

The duplicate checker is located in the lower center panel of the SortPics window. The duplicate checker works in conjunction with the categorization panel to automatically scan your categories for duplicates of the current image.

Let's work through an example... You've configured the categories with several animal related categories, such as "dogs", "cats", and "birds". Now you're flipping through a batch of freshly downloaded images, faithfully moving each image into it's respective category. Sooner or later you come across a picture, "collie1.jpg" which contains the same image as "mydogspot.jpg" in the dogs category. Although the names are different, the contents of these two files are the same. The duplicate panel will automatically find "mydogspot.jpg", display it, and let you know that it's a duplicate with the current image. Then it's up to you to either keep the duplicate or delete it.

There are a few key observations:

There are several type of duplicates which the duplicate checker may find for you:

It's possible that multiple duplicates may be detected. In this case, the little plus (+) and minus (-) buttons below the duplicate panel will allow you to scroll through the list of duplicates. Duplicates are always sorted in the following order: Duplicate, Same Contents, Same Name, and Same Size.

The Search for Duplicates Tool:

The Search for Duplicates tool is designed to help you remove duplicate files from a directory quickly. It will search the current directory and compare all of the files in the current directory to other files on disk in the categories and banks you have configured. To use this tool, you must:

All of the duplicates in the current directory will be hilighed in a list. You can click on any or all of them, and use the delete button to delete them.

Built In Keyboard ShortCuts:

Several keyboard shortcuts are built in to facilitate common procedures. Any of these may be overridden by a user-defined categorization hot key if desired:

The default behavior for the arrow keys is to be sent to whichever control is currently in focus. For example, if you've selected the categorization panel, then the arrows would move up and down in the categorization panel. If you select the file listbox, then the arrows would move up and down in the file listbox. For many people, this is not what they want. They'd like the arrows to always select the next and previous pictures, regardless of which control has the focus. I decided to leave the default as-is, but I have provided an option in the Setup section below to allow you to change that preference.


The Setup button will activate a configuration dialog which contains a whole ton of options. There's all sorts of things which you may configure.

Miscellaneous Notes:

This program works best in a high-color or true color graphics mode. Basically, there are two different types of resolution which your computer may be configured to use. One is a palette based mode, where your computer is forced to operate with 256 (8-bit) or less colors. This is very restrictive for imaging software to deal with, and SortPics performs less than perfect in this setting. The better choice is a "true-color" or "high-color" mode in which 16,24, or 32 bits are used for colors. This allows your computer to display thousands or even millions of different colors. SortPics likes this setting much better. Which mode you can use depends largely on your video card, and how it is configured. You may usually be able to right-click on the Windows desktop to bring up the graphics settings where you can change to a better mode if your video card supports it -- I recommend doing this.(Note: SortPics will automatically notify you at startup if you're using the low-quality mode; If a warning notice isn't displayed, then you need not worry about the color mode)

Command Line Options:

SortPics supports several command line options that advanced users can use to control program behavior. Here is a list:

Option Example Description
-pos X,Y sortpics -pos 100,100 Set the window position in pixel coordinates
-size W,H sortpics -size 100,100 Set the window size in pixels
-nocat sortpics -nocat Disable the categorization panel
-nodup sortpics -nodup Disable the duplicate checker panel
-nodirpane sortpics -nodirpane Disable the directory panel (best used together with filename option)
-fillclient sortpics -fillclient Eliminate the blank space between the image and the window border
-nomenu sortpics -nomenu Hide the main menu
-nochild sortpics -nochild Do not open up a child viewer window when an image is double-clicked
-defaultmode sortpics -nodirpane -defaultmode Set display mode to default (stretch image to maximum of fullsize). Note: Only works if -nodirpane used
-fullsizemode sortpics -nodirpane -fullsizemode Set display mode to fullsize. Note: Only works if -nodirpane used
-stretchmode sortpics -nodirpane -stretchmode Set display mode to stretch (stretch image to window dimensions). Note: Only works if -nodirpane used
-close <filename> sortpics -exit -close c:\sample.jpg Close any open windows that contain the specified filename
-exit sortpics -exit Exit without displaying image (use in conjunction with other options, such as -close)
<filename> sortpics sample.jpg You can include a single filename on the command line, and sortpics will display that file name on startup

Here is an example that will load sortpics and display a single image with no features enable (i.e. pretty much uses sortpics as a "dumb" viewer)

sortpics -nomenu -nodup -nocat -nodirpane -nochild -fillclient sample.jpg

You can also cause Sortpics windows to be closed by using the -close <filename> command. A position-independent match is used (i.e. the "strstr()" function) so that you can specify a partial filename as the file to be closed. For example:

sortpics -close sample.jpg -exit

[Note: the above would close any window with sample.jpg in it: c:\sample.jpg, c:\pictures\sample.jpg, etc]

Contacting the Author:

My primary website is, and I maintain a full backup of this site at in case the primary should fail for some reason. You can always find the home page for SortPics at

I may be reached by email at

My mailing address is:

Scott Baker
2241 W Labriego
Tucson, Az 85741
United States of America


This program is distributed as Shareware, and you are required to register it by paying the $29.95 registration fee if you continue to use it. You are allowed to evaluate the software, completely free of charge, for as long as is reasonably necessary for you to determine if it suits your purposes.

Registration may be accomplished in several ways, including online secure credit card payment at my website, or by check, money order, or cash sent to my mailing address. Always include your email address (clearly printed) in any correspondence that you send me!

Registration of SortPics automatically grants you registration of several of my other programs, including SBNews, SBWcc, and SBJv. For full details, see my complete registration documentation at Registrations are good for life and entitle you to all future versions of the software.

Revision History: