PhotoGrok FAQ

How do I install PhotoGrok?

PhotoGrok is a Java Web Start application. You must have Java 5 or 6 installed on your machine. If your browser is properly configured to handle the JNLP mime type (this should happen when Java is installed), simply click on the orange launch button on the home page or use this link. On some browser configurations the mime type isn't configured correctly and you will be presented with a download screen for the file "launch.jnlp". Go ahead and download the file and then open it. You will only need to follow these steps once as Web Start will install an icon for you to run the application. If all else fails you can launch PhotoGrok by typing the following command (minus the quotes): "javaws http://www.haplessgenius.com/photogrok/launch.jnlp".

Why should I trust an "untrusted" certificate?

I can't afford to pay several hundred dollars for a code-signing certificate from one of the certificate vendors...especially for software I'm creating for free. PhotoGrok needs to call ExifTool so it needs to be signed. It's really no different than downloading an EXE (like ExifTool itself). Either way you're making a decision about whether to trust the author of the software. Trust the certificate only if you would have downloaded and run PhotoGrok if it were an exe file. Use at your own risk.

How do I run this thing?

PhotoGrok only needs to know one thing before it can build a tag tree. Where are your images? That's it. Use the "Folder Manager" button on the tool bar to browse to the directories you want PhotoGrok to search. Once you do that, press the "Build Tree" button on the tool bar and wait for ExifTool to process the files. By default PhotoGrok will use the ExifTool tag "FileType" to build the tree. If you want to see a different tree structure, open the "Tree Tags" dialog and enter a comma-delimited list of ExifTool tags. If you want to see a tree by Lens and ISO, enter "LensID,ISO" and press the Search button.

Why does PhotoGrok connect to the Internet?

Since PhotoGrok is a Java Web Start application I had the option to make it check for updates when launched. It does so by comparing the timestamps of various components and downloading newer versions if available. That's all it does. Please note that acccess to the Internet is not required to run PhotoGrok once it's installed.

Linux and Mac have the ability to cancel a search. Why not Windows?

By default PhotoGrok uses the ExifTool.exe on Windows. This executable bundles Perl and everything needed to run ExifTool for PhotoGrok. Unfortunately it spawns a child process that can't be stopped by Java. Windows users can get the same functionality by installing Perl and then following the setup procedures on the ExifTool home page. Once perl is installed and in your Windows path, configure PhotoGrok to use the exiftool.pl script. This may also improve performance (for example installing 64-bit Perl on a 64-bit OS).

Why doesn't PhotoGrok look like the screen shot on the home page?

You're likely running Java 5. Java 6 is required to get the Substance look and feel.

Do I have to visit the home page to start PhotoGrok?

No. PhotoGrok is a Java Web Start application and can run without a network connection. Web Start should install a PhotoGrok icon on your desktop. If it's not there (or you deleted it), open the Java Web Start control panel by typing "javaws -viewer" at the command line. This will show all of your Web Start programs. Right-click on the PhotoGrok entry and choose "Install Shortcuts" to create an icon on your desktop. (Some versions of Web Start may place an icon in the start menu as well).

Does PhotoGrok alter my images or existing Exif information in any way?

The PhotoGrok application only saves preferences and thumbnail images (if thumbnail cache is activated) to the hard drive. It uses ExifTool to read the meta data from your images. No ExifTool write operations are executed. No files are altered.

Does PhotoGrok work with RAW files?

Absolutely. Any file supported by ExifTool works in PhotoGrok (including non-image files). When looking at raw files you're seeing the preview image embedded in the file (extracted by ExifTool). If your in-camera processing is set to some mode like black and white, the preview image will likely be black and white. The actual RAW itself contains the full-color data for the image.

The thumbnail preview screen is slow. What can I do?

PhotoGrok builds the preview screen by asking ExifTool to return any embedded thumbnail images. If no embedded thumbnails exist, it will covert the full image. This can be slow on some machines. You can open the configuration screen and click the "Enable Cache" check box. This will cause PhotoGrok to save the thumbnail images (as they are viewed) for quick loading in the future. I'd suggest doing a search that covers your entire image collection and viewing the results so thumbnails are saved. After that, viewing will be much quicker.

Searching large image collections can be slow. What can I do?

The standard PhotoGrok search uses ExifTool to return image information. ExifTool must read through your files one by one and this takes time. Alternately, you can run an index search. An index search takes only a fraction of the time a "brute force" search takes. For example, I can search for any tag in my collection of 20,000 images in just a few seconds using an index search. To build an index database, configure your image directories and the file types you want included. Then use the "Index Manager" button (the globe) to create the index...this can take time for large collections. Once the database is built, use the search index button for quick searching!

How do I use date formatting?

Let's say you want a tree with a heirarchy based on your image's time of creation broken down by year, month and day (but excluding hours, minutes and seconds). For any ExifTool tag that represents a date/time (like DateTimeOriginal), you can use PhotoGrok's date formatting. When entering the tag, end with parenthesis containing the desired date/time format. For example:

DateTimeOriginal(yyyy-MM-dd)

Use the formatting rules corresponding to Java's SimpleDateFormat. See here. Another example: DateTimeOriginal(EEEE) will display the tree with images categorized by the day of the week they were taken (Monday, Tuesday, etc).

Since PhotoGrok allows you to enter the same tag multiple times when building a heirarchy you can use date formatting to create a tree with each part of the date at a different level in the heirarchy. A common example might be year at the top level, month below and day at the lowest level. Enter the following comma-delimited string of tags to achieve this:

DateTimeOriginal(yyyy),DateTimeOriginal(MM),DateTimeOriginal(dd)

Please note that filters do not accept tags with formatting. Invalid formatting codes (or invalid tags for that matter) are simply ignored.

How Can I Use Javascript Expressions in Filters?

Any Javascript expression that evaluates to true or false can be used in a Filter. The expression can only contain a single variable (the ExifTool tag selected or typed into the first Filter field), but complex expressions can be constructed by adding multiple Javascript filters. For example, to see all images taken between F2.0 and F4.0, select (or type if it's not available in the drop-down list) 'Aperture' into the first  filter field, select "Javascript Expression" as the filter operation and enter "Aperture >= 2.0 && Aperture <= 4.0" into the third field. Other Javascript functions like string and regular expressions should also work. Java 6 is required.

Example Expressions:

Shutter Speed < 1/1000
ExifTool returns ShutterSpeed as 1/x unless speed is one second or longer. So...only process speeds containing a '/' character. (In the formula, .001 is 1/1000)

ShutterSpeed.indexOf('/') != -1 &&  ShutterSpeed.substring(0, ShutterSpeed.indexOf('/')) / ShutterSpeed.substring(ShutterSpeed.indexOf('/') + 1) < .001

Focal Length > 150mm:
With images from my Panasonic GH1, FocalLength is returned from ExifTool in the following format:  "155.0 mm". We must remove the  " mm" to do the comparison.

FocalLength.substring(0, FocalLength.indexOf(' mm')) > 150.0

How Can I Back Up Images in a Search Tree

Right-click on a folder or root node of the tree and select "Copy Tree" from the popup-menu. Choose an empty directory in the resulting file dialog to start the copy process. The directory must be empty or the copy will not proceed.

Directories will be created to match the tree structure and all corresponding files will be copied into the appropriate folders. In the case where the copy results in a duplicate file name a "_1", "_2" etc. will be appended to the copied file's name (the file's extension will be maintained). Any characters in the ExifTool-derived folder names that are not legal filesystem characters will be encoded to legal characters (most commonly the '/' character).

This is useful if you need to backup or organize existing images based on their ExifTags. For example, copy all images for a specific camera model for archival purposes. Please note the original images/files are not moved or modified in any way.

I have some suggestions. Can you implement them?

Sure. If there's something you'd like to see just let me know. My e-mail address is bradgrier@cox.net.


Return to PhotoGrok home page