|Comparison of the Minolta DiMage and sRGB (typical monitor) color gamuts||DiMage tonal response curve|
2 minute quick start. ColorFix can be run as a DOS or Windows application. To run the Windows version of ColorFix, simply add the files that you want to correct and click the "start" button to begin correction. To run the DOS version of ColorFix, type colorfix imageName.jpg at the command prompt (make sure ColorFix is in the same directory as the image file or in the DOS path, and replace imageName.jpg with the name of the image file you want to correct). To convert multiple images simultaneously, you can use wildcards such as colorfix image*.jpg. To see a list of all options, type colorfix -? at the command prompt.
Click here if you want to jump to the download section, skipping over the following (interesting and useful!) discussion about color spaces and how to customize ColorFix.
Color Spaces Simplified. Color space theory is quite complex and a full discussion is beyond the scope of this document, although the rest of this document may not make much sense unless you have a general idea what a color space is. (The International Color Consortium (ICC) page has some good reading material). In general, in order to translate between two color spaces, three items need to be known for both the input (e.g. camera) and output (e.g. monitor) color spaces:
A color gamut specifies the full range of colors that a device (e.g. digital camera, printer, etc.) is capable of capturing or displaying. The areas within the two triangular regions in the diagram above show two different color gamuts. Colors outside a device's color gamut cannot be differentiated. The white point is a point inside the color gamut that corresponds the devices's rendition of pure white. A tonal reproduction curve (similar to the "curves" tool in an image editing program such as PhotoShop) is a mathematical relationship used to convert a linear representation of color intensities into something more "curved". (This is necessary because of the way the human eye perceives changes in light/color intensity).
If all three of these items (color gamut, white point, and tonal reproduction curve) are known for both the input and output color spaces, then the colors in an image can be converted from one space to another. The mathematics are reasonably straightforward, and are explained in documents found on the Accurate Image Manipulation website.
Under The Hood...what ColorFix Does. ColorFix converts from one color space to another by following these steps:
ColorFix Default Behavior. By default, ColorFix is designed to work with images produced by the Minolta DiMage 5 and 7 digital cameras. As such, the correction is quite subtle. It uses the color profile shipped with the Minolta Dimage Image Viewer (DIVU) software as the input color space, and a modified version of the sRGB profile embedded in DIVU-corrected images as the output color space. ColorFix uses the same tonal reproduction curve and white points for both the input and output color spaces, which means that the correction does not affect the overall contrast and/or whitebalance of the image. In fact, the only differences between the input and output color spaces are the color gamut parameters. The net result is that the corrected colors appear more natural--greens become a little brighter and "greener", yellows and blues become a little more intense and the reds become a little less saturated.
|Before correction||After color correction, yellows become more intense|
|Before correction||After color and contrast correction, greens
become "greener" and lighter
Contrast/Saturation Adjustments. ColorFix's default behavior can be adjusted in a number of ways. To change the brightness of the output image, use the brightness/gamma controls ("-g" command-line options). These effectively increase or decrease the "curviness" of the output tonal reproduction curve. Values of greater than 1.0 reduce the contrast (lightening shadows, useful for the DiMage's normally high-contrast images). Values of less than 1.0 increase the contrast. A value of 1.0 produces no change. For more control, you can adjust the low values (shadows), middle value (midtones) and high values (highlights) of the tonal reproduction curve independently using the -gl, -gm and -gh options. A common criticism of the Minolta DiMage images is that they are too "contrasty" with very dark shadows. Using a command such as colorfix -gl1.3 pict0001.jpg can lighten up the shadows, revealing previously hidden detail.
An alternative approach to brightening an underexposed image is to use the "push-processing" feature. This simulates the traditional film development process where film is developed for a longer period than normal in order to produce a lighter image from an underexposed negative. ColorFix's push-process feature works by boosting the brightness values for each pixel after the image data has been "linearized", preventing contrast shifts that can occur using traditional brightening techniques. Underexposing an image (in the camera) by one stop, and then push-processing the image by one stop effectively simluates a doubling of the camera's ISO setting. Note: As with film-based push processing, this technique can increase the amount of noise/grain in the final image.
To change the saturation of an image, use the saturation controls ("-s" command line options). Values smaller than 1.0 effectively "shrink" the size of the triangular color gamut (see diagram above) for the output color space. The result is that colors become more intense, or saturated. For more precise control, you can adjust the red, green and blue values independently using the -sr, -rg, -sb options.
Customzing ColorFix. For advanced configuration, all 3 relevant color space items (color gamut, white point, tonal reproduction curve) for both input and output color spaces can be specified in text (i.e. human-readable) configuration files. Custom configuration files can be accessed using the "-i" (input) and "-o" (output) command line options (DOS and Windows versions).
To make colorfix as convenient to use as possible, the syntax for its configuration files is compatible with the output from Graeme Gill's iccdump program. ColorFix reads a subset of the ICC tags that are output by the iccdump program. In particular, ColorFix reads the rTRC, gTRC, bTRC, kTRC tags that define the tonal reproduction curve, the rXYZ, gXYZ, bXYZ tags that specify the color gamut and the wtpt tag to specify the white point. Note: if the tonal reproduction curve is only partly specified (i.e. some points are omitted), the missing points are generated using linear interpolation from neighoring points. Adjusting the output tonal reproduction curve is useful for creating custom "curves" similar to what can be achieved using image editing software. Consult the example config files (inCfg.txt and outCfg.txt) that are distributed with ColorFix for more details and examples. (Spaces and capitalization in the configuration file are important). Here's a message I posted on a bulletin board with some more detail on using custom color spaces.
Notes and restrictions.
Distribution Status. ColorFix is distributed as shareware, meaning you are expected to "register" it (i.e. pay $17) to purchase the program. While ColorFix will operate without registration, it is limited to processing images with sizes no larger than 1280x960 pixels. ColorFix comes with no warranty and TawbaWare and the author take no responsibility for any damages caused by the use of this program.