Download GRIP
GRIP is available here free for you to use. Please mention www.grelf.net when describing it or copying it.
Compiled version
All software contains bugs, even if, we hope, they are only extremely subtle ones. The author has tested this software to the best of his abilities to ensure that it is generally fit for its purpose of processing and measuring digital photographs.
The author makes absolutely no claims and gives no guarantees whatsoever as to the accuracy of any output from this software.
Anyone making decisions based on any output from this software has a responsibility to first convince themselves of the appropriateness of so doing. They should test the software for themselves and understand how it works, sufficiently for their needs. Source code and explanatory documentation are available for that purpose.
Prerequisites
Requires Java 6 Run-time Environment (JRE) which can be downloaded (free) from Sun's Java web site - look for the Java SE download page. Perhaps easier to find is the big download button on java.com.
If you try to run GRIP in an earlier JRE than version 6 you will get an error message similar to this in the command window:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
The solution for this is to upgrade your installed Java to version 6.
Download
- Download the compiled application here. Version 10.2.12 (2.6 Mbytes)
- Unzip the down-loaded file (in Windows right-click and Extract all).
- The file called run.bat is for launching GRIP. You may want to create a short-cut to it on your desk-top.
- You may need to edit run.bat to include the path to your JRE, if java.exe cannot be found in your system.
- Unix users may want to modify run.bat, a Windows batch file, to become run.sh, a shell script.
- If you change "java" to "javaw" in the command line inside run.bat there will be no black console window while GRIP is running. You would not lose any information by doing that because a log file is created on every run.
- You may also wish to alter the -Xms (starting memory) and -Xmx (maximum memory) settings to suit the amount of RAM in your system. By default GRIP will start off using 768 Mbytes and may expand to take up to 1 Gbyte if you open several images at once. It is probably best not to let it try to take all of your RAM. The "About" option on the help menu will show you how much memory GRIP is using at any time.
Important: If your machine has less than 1Gbyte of RAM you really should edit run.bat so that -Xms and -Xmx values fit inside your memory with some to spare. Otherwise the JVM will use all the memory we say it can have but unfortunately some of that will be on disc. In that case when GRIP runs a lot of processing time will be wasted swapping image data back and forth between RAM and disc, and performance will be really slow.
- The class files have been compiled in a Windows XP JDK but they are intended to be platform-independent. If they do not work on your platform please let me know.
- GRIP uses a package called jrawio, from Tidal Wave, which conforms to the JAI specification and enables RAW files in the formats of the major camera makers to be read. The JAR file for jrawio is included in the download from this page so that such files can be processed.
Upgrade only
If you have downloaded a previous version of GRIP, you do not need to download the 3rd party jar files again, you can simply download the new version of the single file grip.jar here (430 kbytes).
Directory structure
This diagram shows how the GRIP directory should look for running the application.
If you want to access the help files and the programmer's (API) reference ensure you unzip the other downloads as shown in the diagram. Here are the help files:
Download the help files here (1.8 Mbytes)
The API documentation files are available from my programmer's download page.
Known issues
- EXIF and XMP metadata are not read from all kinds of JPEG images (EXIF does work for some JPEG images but not all). GRIP is aimed more at TIFF and RAW images.
- There is a difficulty in updating the metadata when saving some image files, to show the date and time of last saving. A warning dialogue is shown in such cases but the image will still be saved.
- There may be problems with some monochrome image formats. GRIP is aimed more at colour (RGB) images. All operations have been written to cope with any number of bands (channels) in images, and 8 or 16 bits per channel but some java.awt.image.BufferedImage types may cause problems - not all have been tested in GRIP. Images are kept in memory in the particular BufferedImage format in which the JAI-compatible reader has loaded them. They are then only converted to another format for display, so that the BufferedImage type is compatible with the display hardware. This conversion is done for optimum performance. Otherwise it could in some cases take several minutes to redisplay an image, particularly for 16-bit images. The author has found that using java.awt.Graphics.drawImage () can be inordinately slow compared to converting for display by copying pixels sequentially between java.awt.image.Rasters, so GRIP does its own copying.
Copyright
If you download my software it is yours to do with as you wish but I own the copyright of all of its Java source code. GRIP, being written in Java, is dependent upon Sun's Java library. Sun is in the process of making its library "open source". It will be subject to the General Public Licence (GPL) but with an important exclusion clause which ensures that works dependent upon it do not have to be distributed with GPL. Click here for more information about this, from Sun Microsystems.
When discussing with others GRIP or your results from it, please mention www.grelf.net.