fScanX Details

Installation

Double-click the “fScanX.mpkg” item to launch the installer, then just follow the prompts.

Overview

TThe fScanX package consists of 3 components:

  • The GUI application, fScanX.app, for standalone scanning;
  • An Automator action, for quick & easy automation of scanning;
  • The fscanx command-line utility, for scripting workflow applications, which can easily be called from shell scripts, AppleScript, or any programming language that supports executing command-line utilities (in other words, all languages).

(The GUI application is a Cocoa wrapper using the command-line utility, and its source is included as an example of how to build a user interface on top of the command-line utility.)

Installation Notes

The software requires at least OS X 10.7.5.

The installer puts the GUI application, fScanX, into the Applications folder. This application is self-contained and can just be dragged to any other location on your hard disk if you wish. The user interface is self-explanatory: a few options for scan type and size, and a scan button that when clicked asks you to choose a location and name for the file.

The installer no longer installs the command-line utility fscanx into your /usr/local/bin/ directory. You may copy (or symlink) it from fScanX.app/Contents/MacOS/fsxanx to anywhere on your hard disk. Like any command-line program, if you move it to a directory that is not part of your command search path, you will have to change to its containing directory or use the full path name in order to invoke it.

The installer does not install the source for the GUI application. That is in the “fScanX-GUI” folder in the “Integration Examples” folder, and if you want to look at it you can copy it where you want it. Please note that it was built with Xcode 5.0.1 and may not work with older versions of Apple's development tools

Automator Action

There is more information on the Automator action, including a bried introduction to Automator and several examples, online here.

Command-Line Utility

The command line utility takes a number of options, followed by a file name. The options all have reasonable defaults: monochrome scanning, 300dpi, 8.5x11 inch page with no margins, multi-page TIFF output. So the command:

fscanx myfile.tif

will scan all the pages on the scanner's document feeder and create myfile.tif in the current directory. This assumes that fscanx is located where it will be found in the search path, if not you'll have to either use the full path, or be in the directory where the utility is located. For instance:

/Users/me/myscanstuff/fscanx myfile.tif

or:

cd /Users/me/myscanstuff
./fscanx myfile.tif

The rest of the examples will assume the utility is on the search path, as is the case with the default location /usr/sbin.

Note that trying the command fscanx with no arguments will in typical UNIX fashion give you a concise summary of the options:

Build 1.8 2013-11-09 usage:

  fscanx --enumerate
    scan the USB bus for all supported scanners and list them

  fscanx --capabilities location
    given a usb location (from --enumerate), list the scanner capabilities

  fscanx --info location
    given a usb location (from --enumerate), list the scanner information

  fscanx --register name email license
    add the license

  fscanx --registrations
    list all licenses

  fscanx --unregister
    remove all licenses

  fscanx options filename
    scan pages into file 'filename' where possible options are:

  --append to add to, rather than overwrite, an existing file
  --adf to scan from automatic document feeder, --flatbed to scan from flatbed
    default is adf
  --tiff to create TIFF file, --pdf to create PDF file, default is tiff
  --compress option, where only option is zlib for gray & color TIFF
  --duplex to scan front and back, otherwise scan front only
  --rotate-f-b where f stands for rotation of front side, b stands for rotation of
    back side, possible values are 'n' for none, 'f' for 180 degrees flip, 'l' for
    90 degrees left, and 'r' for 90 degrees right; --rotate-r-l is equivalent to
    --landscape; allowable values are --rotate-n-n, --rotate-n-f, --rotate-f-n,
    --rotate-f-f, --rotate-l-l, --rotate-l-r, --rotate-r-l, and --rotate-r-r,
    remember that width & height are specified in terms of how one reads the
    document, in other words 11 wide by 8.5 high for US letter-size & landscape
  --mono, --gray, --rgb, default is --mono
  --resolution xxx, dots per inch, from 50-600 in 1 dpi increments, 
    default is 300
  --paper-width xxx, --paper-height xxx, size of document in units of 
    1/1200 inch, default is 8.5 x 11 inches
  --auto-length, if specified, automatically detect length of paper up 
    to length specified in paper-height, and create output image of 
    actual length (does not work with landscape scanning); if no paper-height is
    given, then the scanner's maximum (for the scan's resolution) will be used
  --left xxx, --top xxx, --width xxx, --height xxx, scan area in units
    of 1/1200 inch, centered on scan area, default is the entire page
  --threshold xxx, is 1-254, applies to mono, ignored for gray & color, 
    default of 128
  --dtc x, where x is d, 1, or 2 for scanner's best, full, or simplified
    dynamic thresholding, respectively
  --density x, where x is floating point value from 0.1 to 10.0; adjusts the 
    threshold calculation to darken or lighten the result; 1.0 should be close to
    accurate reproduction, with 1.1 slightly more legible on screen for typical 
    documents; 0.5 is a good guess for very dark originals, and 2.0 a good guess 
    for very light originals
  --despeckle xxx, is 0-100, applies to mono, ignored for gray & color,
    default is 0, reasonable values are: 92 @ 600dpi, 60 @ >= 400dpi, 
    39 @ >= 300dpi, 32 @ >= 200dpi, 15 @ >= 150dpi, 7 @ < 150dpi
  --bits x, bit depth of output, 1-8, applies to gray & color, ignored
    for mono, default is 6
  --black xxx, --white xxx, specify endpoints for contrast stretch,
    defaults are: 7 & 240 for 3-7 bits out, 0 & 255 for 8-bits out
  --over-sample, applies to gray & color only, up to 300dpi only;
    scan at 2x resolution and scale to 1x resolution for
    output; the use of an advanced scaling algorithm can result in
    slightly higher quality than scanning at 1x resolution, but with
    the same file size
  --no-jpeg, disallows use of JPEG compression for communication with scanner;
    JPEG compression is normally used when available, otherwise high-end scanners
    will produce data faster than USB 2 can transfer it; the degree of compression
    used is very light so most documents will not be degraded; but if you have an
    unusual document or concern about lossy compression, use this option
  --fcreator code, is file creator, either ASCII like ABCD or
    hex-encoded like 0x41424344, default is 0x00000000
  --images-per-file xx, is 1 or more, scan into multiple files with xx
    images per file, file number is inserted before last "." character
    if any, otherwise at end of file name, default is to put all pages
    into a single file
  --double-feed option
    option is n for none, t for overlap/thickness variance, l for length
    variance, tl for both overlap/thickness & length, default is t
  --location location
    use the scanner at the specified USB location rather than the first
    matching scanner, locations can be found by using the --enumerate
    option, or in System Profiler, or using IORegistryExplorer
  --preview width height
    output preview images as pages are scanned, scaled proportionally to fit in
    the given dimensions; for black & white or grayscale scan, the output is
    grayscale, for color scans it is RGB; in all cases it is binary data so this
    option is not suitable for use from the terminal; after launch the phrase
    "preview fifo:" will be written to stdout followed by a space and the path
    of the pipe from which the previw pages can be read; for each page, a line
    with "preview w x h (d, rb)" where w is width, h is height, d is depth, rb
    is row bytes, followed by w*rb*d bytes of image data followed by a single 
    newline character.

returns 0 for success, 1 for argument error, 2 for failure to find
    scanner (or failure to validate license), 3 for failure to start scan,
    4 for unspecified error during scan, 5 for failure to create or open file,
    6 for paper feed failure, 7 for failure to create preview fifo, 
    8 for user interrupt, 9 for expiration of pre-release, 10 for file limit
    exceeded (4GiB for TIFF, 10GB for PDF), 11 for disk full error, 12 for other
    file write error

(c) 2004-2013 Elevated Software Development, Inc. All Rights Reserved.
http://www.elevated-dev.com/Products/fScanX/

Thanks to libtiff.org for the libtiff library, portions of which
  are (C) 1988-1997 Sam Leffler and (C) 1991-1997 Silicon Graphics Inc.
Thanks to the Indpendent JPEG Group for the libjpeg library, (C) 1991-2010 Thomas
  G. Lane and Guido Vollbeding.
Thanks for zlib, (C) 1995-2004 Jean-loup Gailly and Mark Adler

Command-Line Examples

The output above is a complete list of the options; following are some examples to help you figure out the options.

This command is the same as using the default options, they're just spelled out:
fscanx --mono --resolution 300 --left 75 --top 75 --width 10050 --height 13050 --threshold 128 myfile.tif

This command would be good to scan a form with gray backgrounds:
fscanx --gray myfile.tif

This command would be good to scan a form with colored text and/or backgrounds:
fscanx --rgb myfile.tif

The threshold option is good for adjusting for light or dark originals when scanning in black and white. For dark originals try lower values and for light originals try higher values. The despeckle option controls how aggressively the software tries to remove "specks", isolated pixels not part of larger groups. A setting of 0 doesn't remove any specks, a setting of 100 removes any pixel that's not completely surrounded by adjacent pixels.

These two settings do interact. To deal with problematic originals, try a 2-step process. First adjust the threshold until the density of text is correct, that is until the thickness of strokes of letters is not too thin (look at letters "l" and "t") but small interior spaces (as in "e") are not filled in. Second, adjust the despeckling to reduce specks. Note that for a good quality original on clean paper, the despeckling settings will not make a visible difference. For really bad originals, the best thing to do may be to scan to 2- 3- or 4-bit grayscale.

The contrast stretch options, --black and --white are good for adjusting the contrast of forms. Blank paper is not quite white, it's typically seen by the scanner as a light gray and likewise printed black may be a dark gray. The contrast stretch options let you specify a cutoff below which all grays will be pushed to black, and one above which all values will be pushed to white. The default values are good for a wide variety of inputs. But if you have problem originals (streaky, blotchy, stained, light printing, smeared backgrounds) you may be able to improve the scans by using these options.

The default reduction of output to 6-bit gray or 6-6-6 rgb works well for forms. This provides enough colors to match form colors well enough, and dropping the less significant bits reduces noise that would otherwise show up as inconsistent shades. It also results in files that compress better.

Stretching light and dark grays to white and black and throwing away half the color information produces poor results for photographs. The Fuji scanners are document scanners and documents are the focus of this software, but there are options that won't mess up photos.

This would be better to scan a black & white photograph:
fscanx --gray --bits 8 myfile.tif

This would be better to scan a color photograph, and would type the file to be opened by GraphicConverter:
fscanx --rgb --bits 8 --fcreator GKON myfile.tif

This would scan into multiple files, 1 per page, named test1.tiff and so on:
fscanx --images-per-file 1 test.tiff

The --duplex option scans both sides of each page. With this option, the images-per-file option counts each side separately. So images-per-file 2 would put 2 images into each file, the front and back side of a single page.

The --pdf option creates a PDF file instead of a TIFF. PDF documents are good for printing; the Adobe Reader application has an option in the print dialog to not scale the pages when printing, which provides good print quality. (See the next section for more information.)

Printing Notes

Scaling scanned images by non-integral amounts during printing produces ugly results. In other words scaling a 600dpi image to 50% to print on a 300dpi printer is fine, but scaling an image down by 10% to fit into the printable margins produces an ugly jagged result. The Preview application in OS X will scale scans to "fit" according to its own notions, and there does not seem to be any combination of preference settings that will prevent this. Many other applications have this problem, so if you print scans and they look bad it might be an issue with scaling.

GraphicConverter can be made to print a scanned image without scaling, more easily in some versions than others. I use it for my quality checks. Note that with many recent Macs it is included in the software Apple ships.

Adobe Reader has an option to not perform any scaling when printing, and this seems to be very reliable about not messing up scanned images.

Compression Notes

Monochrome scans are compressed using CCITT Group 4 (fax) compression. This offers about as much compression as can be had, and is lossless. Gray and color scans are compressed using lossless compression.

The TIFF format only supports LZW and JPEG and compression for gray and color images. JPEG is lossy (using JPEG without loss typically provides very little compression). I don't think it's a good idea for me to discard image data right out of the scanner; if your originals and your application are a good match for high-ratio lossy JPEG compression, you can certainly compress the files but I want to provide the option of keeping all the data--so I use LZW for TIFF files with gray and color scans.

The PDF format supports flate (zlib) compression in addition to LZW and JPEG. Flate is lossless and usually provides more compression than LZW, so this is what I use for gray and color images in PDF. For monochrome, I use CCITT Group 4 just as with TIFF so PDF files are very nearly the same size as TIFF, only about 2% larger or less because of some overhead in PDF. (I have discovered that most PDF utilities available use less effective compression options for monochrome scans and thus typically produce files about twice as large.)

The PNG format is lossless and often provides good compression ratios on scanned forms (thanks in part to the color reduction), but does not support multiple pages in a single file. Using bzip2 on TIFF files without compression gives even better, still lossless, compression but the output is not a format recognized by graphic programs so you would have to decompress the files before opening them.

So in summary, for gray and color scans I give you a fairly large file with all the data, and let you decide whether or not to perform some post-scanning conversion to reduce the file size.

FileMaker Notes

fScanX can easily be integrated with FileMaker using FileMaker's AppleScript capabilities. There are 2 basic approaches to take, each with its own tradeoffs.

You can use the AppleScript do shell script command to directly execute the command-line utility. The scan will run synchronously and FileMaker will pause while the scan is running. When that command of the FileMaker script completes, the TIFF file is ready and the script can use it, copy it, display it as needed. This is no problem most of the time, but if you are using FileMaker client/server and scan a long job, the server can time out the client and disconnect it. I don't know exactly how long this takes, but it has been reported to me that it may only be an issue for jobs where you add paper during scanning in order to scan more than the scanner's 50-page capacity in a single batch.

You can tell application terminal to run the utility. The terminal application will launch in the background and the scan will run asynchronously; the user can do other work in FileMaker; there is no problem with a timeout in client/server operation. But there is no easy way for the script to know when the scan is completed, so you may have to depend on the user to click a button when the scan is completed.

4th Dimension Notes

Integration with 4D is very easy. 4D 2004 should be able to use the command-line utility directly with the LAUNCH EXTERNAL PROCESS command. Earlier versions can use the plug-in Scripting Tools from Pluggers Software. Scanned images can be displayed using QPix from Escape.

OCR Notes

I've done some light testing with Readiris 9.0. I could not find documentation on its AppleScript features, but through inspecting its AppleScript dictionary and a bit of trial and error developed the following example script:

set fpath to "/Users/sribe/Documents/testocr.tif"
set fref to (POSIX file fpath as file)
do shell script "fscanx --mono --resolution 600 " & fpath

tell application "Readiris"
  activate
  open fref
  recognize front document saving to ("OSX:Users:sribe:Documents:testocr-ri.doc" as file specification)
  close front document
end tell

OmniPage Pro X was also pretty easy. The same command to scan the file, with slightly different vocabulary to perform the OCR, and OmniPage automatically names the file:

tell application "OmniPage Pro X"
  activate
  load and OCR fref
end tell

Notes: Command-line utilities such as fscanx expect POSIX-style file paths, while applications expect HSF-style paths via AppleScript. This is why I use the two variables fpath and fref. The POSIX file conversion only works for full paths; if you had a relative path you would have to expand it to a full path before using it in a script like the one above.

Version History

2013-11-09 version 1.8: Take advantage of Retina displays to provide higher-quality scan previews. Add option to flip pages (for scanning pages damaged by staples). Do not require user to enter maximum paper length to use length detection. Change threshold method for black-and-white scans to easier-to-use density adjustment. Show only either threshold or contrast controls, as appropriate depending on whether black-and-white or grayscale/color scanning is selected. Remove option for grayscale/color TIFF without compression (which was only needed for compatibility with obsolete viewers, such as Preview.app versions prior to 2006). Shorten window slightly to better fit on a MacBook Air 11-inch. Stop installing command-line utility (thus prompting users for admin credentials) automatically. Fix a protocol bug causing occasional scanner errors with newest scanner models. End support for OS X 10.5 (Leopard) & 10.6 (Snow Leopard).

2013-09-19 version 1.7.8: Fix an accidental incompatibility with OS X 10.5 that was introduced in 1.7.6. Fix minor image artifact that occurred with certain combinations of resolution and scan height with grayscale and color scans.

2013-07-05 version 1.7.7: Add “flip back sides” option for duplex documents which were printed “flip-chart” style. Fixed bug that caused duplex grayscale or color scans to be truncated when using length detection on certain scanner models. Fixed extremely rare crash when launching with no compatible scanner present.

2013-06-12 version 1.7.6: Home Edition adds support for Fujitsu ScanSnap fi-5110EOX, fi-5110EOX2, fi-5110EOXM, S1500 & S1500M scanners. Home Edition also adds new “density” setting to simplify threshold options for black-and-white scanning, and “flip back sides” option for duplex documents which were printed “flip-chart” style.

2013-05-04 version 1.7.5: Fix bug that caused scan failures (Cmd_ReadImage buffer overruns) in rare configurations. Fix bug that prevented Automator action from recognizing licenses. Fix rare crash processing USB device add/remove notifications.

2013-03-10 version 1.7.4: Fix permissions issue that in some cases would cause repeated prompting to re-install command line utility. Add the "Request Support" menu item as an easy way for users to send an email that includes all relevant configuration information.

2013-02-23 version 1.7.3: Do not allow page length detection and double-feed by length variance to be selected at the same time. Correct gray & color duplex scanning on scanners where internal JPEG is used. When files exceed allowed size, truncate them to a consistent state. On disk full error, provide clear message and truncate partial file to a consistent state. Straighten out various difficulties with the shared preferences. Improved display of scanner and license info. Fix command-line update for non-admin users. Sign application & installer for OS X 10.8 (Mountain Lion).

2012-01-13 version 1.7.2: Add support for fi-6130z, fi-6230z, fi-6140z & fi-6240z scanners. In license info window, add button to clear licenses. Trim whitespace & line endings from license entry. Fixed settings not being saved between runs. Fixed Automator action not running as application or service under certain OS versions. Fixed Automator action "file already exists" options to only apply when file is not chosen by user. Fixed in-app purchase. Reverted scanner detection method to take out troublesome workaround for USB bug present in 10.6.5 through 10.6.7.

2011-09-24 version 1.7.1: Fix crash when purchasing or entering license code without a scanner attached. Fix bug that caused repeated password prompt on some systems for install/upgrade command-line utility. Add back license & scanner info dialog. Enable copy/paste in registration dialogs.

2011-08-22 version 1.7: Add support for fi-5900, fi-5950 & fi-6800. Add automatic updating, in-app purchase, and auto install/re-install of the command-line app. If a scan will overflow file size limits (4GB for TIFF, 10GB for PDF), truncate file cleanly without corruption and give an appropriate error. Support two different sets of long-document scanning attributes for those scanners that have them. Add 64-bit support for minor performance improvement. End support for PowerPC, 32-bit, and OS X 10.4.

2011-08-06 version 1.6.6: Fix timing glitch with user input of fractional paper sizes. Add back PowerPC support.

2011-07-28 version 1.6.5: Limited release to selected customers. Add support for fi-5530C & fi-4530C. Fix color scanning on fi-4340C. Fix bugs with duplex gray/color scanning on certain models. Attempt to work around OS X 10.6 bug that locks up the USB. Inadvertantly drop PowerPC support

2010-12-28 version 1.6.4: Fixed bug with locking up on color scans with certain older scanners.

2010-11-20 version 1.6.3: Minor tweaks to the Automator action; correctly accept a path to a non-existent file; append extension if needed before testing for existence.

2010-10-29 version 1.6.2: Try different color scanning compression options for fi-5530C2, fi-6130, fi-6230, fi-6140, fi-6240. Trialed with 1 customer, not released, reverted for 1.6.3.

2010-09-10 version 1.6.1: Correct usage of dynamic threshold function in scanner; differentiate between default (which was previously referred to as dynamic) and dynamic; improve and correct some tool tips; improve ability to stop a scan in progress and do not treat that as an error; correct failure with resuming scan after misfeed of first page.

2010-09-06 version 1.6: Live preview of pages displayed as they are scanned; option to open scan in any compatible application on completion; more orientation options for flatbed scans; ability to stop scan in progress; better warnings regarding demo watermark and mismatched licenses.

2010-04-12 version 1.5: New scan-processing architecture takes full advantage of multiple CPU cores, in order to scan at full speed in color on high-end scanners. Added better support for long-page scanning. Tweaked command timing for tighter compliance to scanner requirements.

2010-03-23 version 1.4.2: Adjusted maximum allowed width.

2010-03-21 version 1.4.1: Corrected reversal of wide-aspect scan orientation icons.

2010-02-10 version 1.4: Added support for flatbed scanners: fi-6230, fi-6240, fi-4340C, and fi-6770. (Also, fi-4220C2, fi-5220, and fi-5750C.) Added Automator action for easy automation of scanning workflows. Added display of detected scanner model, and warning regarding demo mode watermarking. Improved tracking of settings as user switches between sources, simplex/duplex, and so on. Improved document feed orientation icons. Ended support for Mac OS X 10.3.

2009-10-24 version 1.3.1: Added "Licenses & Scanners" menu item to let users review their registrations. Added --flatbed and --capabilities to the command line in preparation for flatbed support.

2009-10-22 version 1.3: Added ability to append to existing files. Used this to make it easy to scan larger files and to recover from paper feed failures. Added --append to command-line utility, and new return codes for failure to open/create file and paper feed failures. Stopped outputting partial pages in case of paper feed failures. Fixed a bug where some errors from deep inside the scanning code were not reported to the user.

2009-10-21 version 1.2.4: Fixed a bug with activation codes related to Unicode character composition.

2009-09-29 version 1.2.3: Fixed a bug scanning black-and-white PDFs. Fixed behavior of "Detect Paper Length" checkbox. Forced correction of kext privileges installed by earlier versions for compatibility with 10.6.

2009-09-24 version 1.2.2: Fixed a bug that would cause a crash scanning large (about 300 pages) black-and-white PDFs.

2009-09-21 version 1.2.1b: Corrected installer for 10.6.

2009-05-26 version 1.2.1: Fixes for minor glitches with activation codes.

2009-05-26 version 1.2: Support for the fi-5350C2 and fi-6670 scanners. Single build, with activation codes to unlock support for different levels of scanners. Official release of support for the fi-6140. Replacement of confusing "landscape" checkbox with icons for selection of paper orientation. Fixed black point and white point settings to work correctly for both grayscale and color scans. Support for double-feed detection options. Option to automatically open scans in Preview as they are completed. Command-line functions to enumerate all attached scanners, and to select a specific scanner per job.

2008-08-15 version 1.1: Support for the fi-6130 scanner; Universal Binary for native operation on Intel-based Macs; support for length detection; support for oversampling; revised user interface for easier changing of paper sizes & landscape printing, and easy re-scanning. Support for the fi-6140 scanner in the level 2 (more expensive) version.

2006-07-20 version 1.0.8: Support for the fi-5120c scanner. Fix error where choice of PDF format would not be saved across launches. Fix error where metric input of sizes was inappropriately limited. Finally remember to add new scanner models to FujiScannerDontSeize.kext to get rid of the 1-2 second pause at the beginning of scans. Abandon all attemps to support 10.2. Complete move to XCode in preparation for Universal Binary version.

2005-05-20 version 1.0.7: Fix threshold, despeckle, black level and white level options. Enable controls correctly at startup after loading saved parameters. Move some of the components from CodeWarrior to XCode in preparation for Universal Binary version. (Distributed only to early adopters; never announced for general release.)

2005-05-17 version 1.0.6: No changes were required for Tiger compatibility, so I believe all versions of fScanX will be compatible, but this is the only one tested and supported under Tiger. Support for long document scanning, using the new --paperheight setting. Changed default format of gray and color TIFF files back to using no compression instead of zlib compression, because most software on versions of OS X prior to 10.4 (Tiger) will not handle TIFF files using zlib compression. Added --compress zlib option to support creation of compressed gray and color TIFF files for those cases where files will be used by software that supports the format. Removed smoothing of gray and color images because when needed this is better left to post-scan image processing. Significantly reduced memory used during gray and color scanning. Rewrote the GUI in Cocoa, which will make addition of features easier; the GUI now saves all its settings between runs. A level 2 (more expensive) version with preliminary support for the fi-5650C: black & white scanning at full speed, gray and color need further optimization.

2005-03-12 version 1.0.5: Support for the fi-4120C2 scanner with USB 2.

2005-03-01 version 1.0.4: Support for duplex scanning. Option to output PDF files in addition to TIFF. Compression (lossless, zlib) of grayscale and color scans. Modest improvement in throughput of monochrome scans at 300dpi and lower resolutions.

2004-11-14 version 1.0.3: Added images-per-file option to allow scanning into multiple files. Also added options to GUI utility to display the command line corresponding to the selected options and/or put the command on the clipboard.

2004-09-19 version 1.0.2: Fixed bug that a scan width of exactly 8.5 inches would be reported as out of range. Added section on integration with OCR to notes.

2004-09-18 version 1.0.1: Fixed problem that caused banding in low-resolution (< 300dpi) monochrome scans. Added control over despeckle factor to command-line. Made command line report many errors in options, rather than just silently substituting default values. Added control over threshold, despeckle, black point, and white point to GUI. Added to GUI ability to view or put on clipboard the command built from the options specified. Added brief comment on integration with 4th Dimension to notes.

2004-09-07 version 1.0: First public release.